Login/Onboarding Redirect Fixes - Summary of Changes Applied

Problem

You reported that:

  1. After logging in, you get redirected to onboarding unexpectedly

  2. Site shows you as "logged in" on initial page load but with incomplete profile

  3. Users shouldn't appear logged in without a complete profile

  4. Frustrated by mysterious redirects and confusing auth state


Root Causes Found

  1. Session restored before profile loads - Supabase restores your session from cookies immediately, showing you as "logged in" even while profile is still fetching from database

  2. Automatic redirect to onboarding - Dashboard component had code that auto-redirected to onboarding if user state was empty, causing unexpected navigation

  3. Unclear intent - No clear indication to user: Are you logged in? Is profile loading? Should you complete it? Users saw mixed signals.


Fixes Applied

Fix 1: Remove Automatic Onboarding Redirect

File: code/client/pages/Dashboard.tsx (Lines 283-311)

What changed:

  • REMOVED: Code that auto-redirected to /onboarding when no user

  • REMOVED: Comment saying "redirect to login when auth is resolved"

  • ADDED: Simple state handling without redirects

  • ADDED: Clear separation of auth loading vs auth resolved states

Old behavior:

New behavior:


Fix 2: Show User-Friendly Messages Instead of Redirecting

File: code/client/pages/Dashboard.tsx (Lines 566-602)

What changed:

  • REMOVED: return null when no user (which allowed redirect to happen)

  • ADDED: "Please Sign In" message with button

  • ADDED: "Complete Your Profile" message with button

  • ADDED: User controls when to complete profile (not forced redirect)

New behavior:

When not logged in:

When logged in but profile incomplete:

When logged in with complete profile:

  • Full dashboard shown normally


Expected Behavior After Fix

Scenario 1: Logging In

Before:

  1. Enter email/password

  2. Submit

  3. ❌ Redirected to onboarding (confusing!)

After:

  1. Enter email/password

  2. Submit

  3. ✅ See dashboard or "Complete Profile" message

  4. ✅ You choose when to complete profile (not forced)


Scenario 2: Page Reload While Logged In

Before:

  1. Reload page

  2. ❌ See yourself "logged in" for a moment

  3. ❌ Maybe get redirected to onboarding

After:

  1. Reload page

  2. ✅ See loading state briefly

  3. ✅ Dashboard appears or message about completing profile

  4. ✅ No unexpected redirects


Scenario 3: Visiting Dashboard When Not Logged In

Before:

  1. Visit /dashboard without being logged in

  2. ❌ Redirected to onboarding (wrong!)

After:

  1. Visit /dashboard without being logged in

  2. ✅ See "Please Sign In" message

  3. ✅ Click button to go to login page


What This Means

No more mysterious redirects

  • You won't be auto-redirected to onboarding unexpectedly

  • Your destination is clear (dashboard or complete profile)

No confusing "logged in by default" state

  • Loading spinner shows while profile is being fetched

  • You don't see yourself logged in until profile is actually loaded

User control over onboarding

  • You choose when to complete your profile

  • Not forced by automatic redirects

  • Clear button to start onboarding

Clear error messages

  • "Sign In" message when not authenticated

  • "Complete Profile" message when missing profile data

  • No guessing what state you're in


Testing the Fix

Test 1: Log In and Go to Dashboard

  1. Visit /login

  2. Sign in with email/password

  3. Expected: Should see dashboard or "Complete Profile" message

  4. NOT expected: Redirect to onboarding

  5. If profile incomplete: Click "Complete Profile" button intentionally

Test 2: Reload Dashboard While Logged In

  1. Log in successfully

  2. Visit /dashboard

  3. Reload page (F5 or Ctrl+R)

  4. Expected: See loading state, then dashboard

  5. NOT expected: Redirect to onboarding or seeing "logged in by default"

Test 3: Visit Dashboard When Not Logged In

  1. Make sure you're logged out (go to /logout or clear cookies)

  2. Visit /dashboard

  3. Expected: See "Please Sign In" message with button

  4. NOT expected: Redirect to onboarding

Test 4: Sign Out and Back In

  1. While on dashboard, click Sign Out

  2. Expected: Should see "Please Sign In" message

  3. Click Sign In button

  4. Expected: Redirected to login page

  5. Sign in

  6. Expected: Back to dashboard or "Complete Profile" message


Files Modified

File
Changes
Status

code/client/pages/Dashboard.tsx

Removed auto-redirect logic (lines 283-311)

✅ FIXED

code/client/pages/Dashboard.tsx

Added proper state messages (lines 566-602)

✅ FIXED


Architecture Changes

Before:

After:


Why This Is Better

  1. Predictable behavior - No mysterious redirects

  2. Clear intent - UI explicitly tells you what's happening

  3. User control - You choose to complete profile, not forced

  4. Better UX - No more "logged in by default" confusion

  5. Matches expectations - Dashboard behaves like a normal dashboard


Potential Issues to Watch For

If you're still seeing redirects:

  1. Clear browser cache (Ctrl+Shift+Delete)

  2. Hard refresh the page (Ctrl+Shift+R)

  3. Make sure you deployed the latest code

If messages don't appear:

  1. Check browser console (F12) for errors

  2. Verify Dashboard.tsx was updated correctly

  3. Check that you're seeing the new Dashboard code

If onboarding still appears:

  1. It should only appear if you click "Complete Profile"

  2. Check that auto-redirect code was removed

  3. Verify changes to lines 283-311 and 566-602


  • Session preservation: ✅ FIXED (cookies preserved on page load)

  • Discord linking: ✅ FIXED (redirects to connections tab)

  • Auth state handling: ✅ IMPROVED (clearer messages)

  • Onboarding redirect: ✅ FIXED (no more auto-redirects)


Questions?

Refer to:

  1. LOGIN-ONBOARDING-REDIRECT-ANALYSIS.md - Detailed root cause analysis

  2. Browser console (F12) - Check for error messages

  3. Network tab (F12 → Network) - Check what endpoints are being called


Summary

The core issue was: Dashboard had code that automatically redirected users to onboarding when their user state was empty or loading. This caused unexpected redirects that felt like bugs.

The fix: Removed auto-redirect logic and added clear messages instead. Users now see what's happening and control their own flow (choosing when to complete profile).

Result: No more mysterious redirects, clearer auth state, better UX overall.

Last updated