diff --git a/frontend/src/routes/+layout.server.ts b/frontend/src/routes/+layout.server.ts
index b3aecd87510c735f98e5cb872178617dbaeaccd9..c403b2a7add5403c850fcf99ff0d8f7b52524e47 100644
--- a/frontend/src/routes/+layout.server.ts
+++ b/frontend/src/routes/+layout.server.ts
@@ -1,4 +1,5 @@
 import { type ServerLoad, redirect } from '@sveltejs/kit';
+import { patchUserAPI } from '$lib/api/users';
 
 const publicly_allowed = ['/login', '/register', '/tests', '/surveys', '/tutor/register'];
 
@@ -11,10 +12,17 @@ const isPublic = (path: string) => {
 	return false;
 };
 
-export const load: ServerLoad = async ({ locals, url }) => {
+export const load: ServerLoad = async ({ locals, url, fetch }) => {
+
 	if (locals.user == null || locals.user == undefined) {
 		if (!isPublic(url.pathname)) {
-			redirect(303, `/login`);
+			throw redirect(303, `/login`);
+		}
+	} else {
+		try {
+			await patchUserAPI(fetch, locals.user.id, { is_active: true });
+		} catch (error) {
+			console.error('Failed to update user status:', error);
 		}
 	}
 
diff --git a/frontend/src/routes/logout/+page.server.ts b/frontend/src/routes/logout/+page.server.ts
index 7790fb9c026c13a8dfafae0d1e2b38ee1fb553f1..7cd9bda3942d17247394a1ff656bdc0b4da093e2 100644
--- a/frontend/src/routes/logout/+page.server.ts
+++ b/frontend/src/routes/logout/+page.server.ts
@@ -1,8 +1,22 @@
 import { type ServerLoad, redirect } from '@sveltejs/kit';
+import { patchUserAPI } from '$lib/api/users';
+
+export const load: ServerLoad = async ({ cookies, locals, fetch }) => {
+	if (locals.user) {
+		try {
+			const success = await patchUserAPI(fetch, locals.user.id, { is_active: false });
+			if (!success) {
+				console.error('Failed to update user status.');
+			}
+		} catch (error) {
+			console.error('Error updating user status:', error);
+		}
+	}
 
-export const load: ServerLoad = async ({ cookies }) => {
 	cookies.set('access_token_cookie', '', { maxAge: -1, path: '/' });
 	cookies.set('refresh_token_cookie', '', { maxAge: -1, path: '/' });
 
-	redirect(303, '/login');
+	locals.user = null;
+
+	throw redirect(303, '/login');
 };
diff --git a/frontend/src/routes/sessions/[id]/Message.svelte b/frontend/src/routes/sessions/[id]/Message.svelte
index aa19c71429bf4734b95ff3a86f5ac2dfa4c2e872..796beded212a57bfdb543cd7ae79ad1b8d3de82b 100644
--- a/frontend/src/routes/sessions/[id]/Message.svelte
+++ b/frontend/src/routes/sessions/[id]/Message.svelte
@@ -186,28 +186,20 @@
 		await message.deleteFeedback(feedback);
 	}
 
-	function getUserStatus(user: User, isInConversation: boolean): string {
-		console.log('status', user.is_active);
+	function getUserStatus(user: User | null, isInConversation: boolean): string {
+		if (!user) {
+			return 'red';
+		}
+
 		if (!user.is_active) {
 			return 'red';
 		}
+
 		if (isInConversation) {
 			return 'green';
 		}
-		return 'orange';
-	}
 
-	function getUserStatusTooltip(status: string): string {
-		switch (status) {
-			case 'green':
-				return 'User is in this conversation';
-			case 'orange':
-				return 'User is connected but not in this conversation';
-			case 'red':
-				return 'User is not connected to LL';
-			default:
-				return '';
-		}
+		return 'orange';
 	}
 </script>
 
@@ -229,9 +221,7 @@
 					? 'bg-green-500'
 					: getUserStatus(message.user, false) === 'orange'
 						? 'bg-orange-500'
-						: getUserStatus(message.user, false) === 'red'
-							? 'bg-red-500'
-							: ''
+						: 'bg-red-500'
 			}`}
 		></div>
 	</div>