From f09cec4e256f9d429a979d989849586148d7db18 Mon Sep 17 00:00:00 2001 From: DanielS Date: Wed, 24 Jun 2026 01:14:33 +0200 Subject: [PATCH] fix: ignore network errors during concurrent session check to prevent false-positive logouts --- shop/components/inactivity-tracker.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/shop/components/inactivity-tracker.tsx b/shop/components/inactivity-tracker.tsx index 8ba36b9..a7f0bb0 100644 --- a/shop/components/inactivity-tracker.tsx +++ b/shop/components/inactivity-tracker.tsx @@ -32,7 +32,22 @@ export function InactivityTracker() { // Prüfen, ob die Session auf dem Server noch gültig ist (z.B. wegen Login auf anderem Browser) const { data: { user }, error } = await supabase.auth.getUser(); - if (error || !user) { + if (error) { + // Nur bei echten Auth-Fehlern (z.B. ungültiges Token / Session gelöscht) abmelden. + // Netzwerkfehler wie "Failed to fetch" haben keinen HTTP-Status (error.status ist undefined). + const isAuthError = error.status === 400 || error.status === 401 || error.status === 403; + if (isAuthError) { + try { + await signOut(); + } catch (e) { + console.error("Fehler beim Server-Signout nach Session-Verlust:", e); + } + await supabase.auth.signOut(); + router.push("/auth/login?message=concurrent"); + router.refresh(); + } + } else if (!user) { + // Keine Fehlermeldung, aber auch kein User-Objekt (Sitzung abgelaufen/gelöscht) try { await signOut(); } catch (e) {