diff --git a/apps/canvas/front/src/Monitoring.tsx b/apps/canvas/front/src/Monitoring.tsx
index 0d86432..46197ef 100644
--- a/apps/canvas/front/src/Monitoring.tsx
+++ b/apps/canvas/front/src/Monitoring.tsx
@@ -62,19 +62,31 @@
 		[env?.services],
 	);
 
+	const handleViewLogsClick = useCallback(
+		(serviceName: string, workerId: string) => {
+			setSelectedServiceForLogs(serviceName);
+			setSelectedWorkerIdForLogs(workerId);
+		},
+		[setSelectedServiceForLogs, setSelectedWorkerIdForLogs],
+	);
+
 	useEffect(() => {
 		if (sortedServices.length > 0 && sortedServices[0].workers && sortedServices[0].workers.length > 0) {
-			if (!selectedServiceForLogs && !selectedWorkerIdForLogs) {
+			if (!selectedServiceForLogs || !selectedWorkerIdForLogs) {
+				handleViewLogsClick(sortedServices[0].name, sortedServices[0].workers[0].id);
+				return;
+			}
+			const service = sortedServices.find((s) => s.name === selectedServiceForLogs);
+			if (service == null) {
+				handleViewLogsClick(sortedServices[0].name, sortedServices[0].workers[0].id);
+				return;
+			}
+			const worker = service.workers.find((w) => w.id === selectedWorkerIdForLogs);
+			if (worker == null) {
 				handleViewLogsClick(sortedServices[0].name, sortedServices[0].workers[0].id);
 			}
 		}
-		// eslint-disable-next-line react-hooks/exhaustive-deps
-	}, [sortedServices]);
-
-	const handleViewLogsClick = (serviceName: string, workerId: string) => {
-		setSelectedServiceForLogs(serviceName);
-		setSelectedWorkerIdForLogs(workerId);
-	};
+	}, [sortedServices, selectedServiceForLogs, selectedWorkerIdForLogs, handleViewLogsClick]);
 
 	const handleReloadWorkerClick = useCallback(
 		(serviceName: string, workerId: string) => {
@@ -302,7 +314,7 @@
 				<div className="flex flex-col h-full">
 					{selectedServiceForLogs && selectedWorkerIdForLogs ? (
 						<>
-							<div className="p-2 border-b text-sm text-muted-foreground">
+							<div className="p-2 border-b">
 								Logs for: {selectedServiceForLogs} / {selectedWorkerIdForLogs}
 							</div>
 							<div className="flex-1 h-full p-4 bg-muted overflow-auto">
