ChatGPT Login Loop — Signed In, Bounced Back to Login

Credentials and SSO succeed but the page bounces back to login. 90% of the time it's cookies, third-party storage, or a stale session.

A “login loop” means the credentials / SSO already passed OpenAI’s authentication, but the browser can’t complete the session handshake — the cookie is written, the next request can’t read it / it’s overwritten / a proxy strips it, so /api/auth/session returns empty and the UI bounces you to /auth/login. Loops are almost always browser-side, not bad credentials.

Common causes

1. Third-party cookies blocked

Most common. The session cookie set on auth.openai.com gets treated as third-party when handed back across to chatgpt.com. Chrome 2024+, Safari ITP, Firefox ETP “Strict” all do this by default.

How to judge: DevTools → Application → Cookies → chatgpt.com after login — does __Secure-next-auth.session-token exist? If no, the write was blocked.

Old cookie still alive — server-side dedupe drops the new login, or in-memory state shows the old user ID.

How to judge: DevTools → Application → Cookies → look for duplicate or ancient-timestamp __Secure-next-auth.* entries.

3. Privacy extension blocks the auth callback

uBlock Origin (with EasyPrivacy list), Privacy Badger, Brave Shields occasionally block auth.openai.com/u/login/callback or chatgpt.com/api/auth/callback/*.

How to judge: DevTools → Network → check if the callback request shows (blocked:other) or net::ERR_BLOCKED_BY_CLIENT.

4. VPN / residential proxy rotates exit IP each request

Cloudflare invalidates sessions that change IP mid-flight as anti-hijack. Most residential proxies (rotating IP pools) will loop.

How to judge: Turn off VPN, try again. Works = VPN was the issue. Or hit whatismyipaddress.com several times; different IPs each refresh = rotating.

5. System clock skew over a few minutes

Signed cookies (JWT) carry iat / exp. The server rejects them if your local clock is more than ~5 min ahead/behind — cookie arrives “already expired”.

How to judge: Mac → System Settings → General → Date & Time → “Set time automatically” should be ON.

6. Hosts file pinning chatgpt.com elsewhere

Rare but fatal — some corporate / school setups point chatgpt.com at an internal proxy. Cookie writes against the proxy’s internal IP, public IP can’t read it.

How to judge: Terminal cat /etc/hosts | grep -i openai (Mac/Linux) or notepad C:\Windows\System32\drivers\etc\hosts (Win).

Shortest path to fix

Do them in order; 90% resolve at Step 1 or 2.

Step 1: Triage with an Incognito window

Mac: Cmd + Shift + N (Chrome) / Cmd + Shift + N (Safari)
Win: Ctrl + Shift + N

Incognito works = cookies / extensions in your regular profile (continue Steps 2-4). Incognito also loops = network / clock / system (jump to Steps 5-7).

Step 2: Nuke all OpenAI-domain cookies

DevTools (F12) → Application → Storage → Cookies, delete:

chatgpt.com         all
openai.com          all
auth.openai.com     all
auth0.openai.com    all (if present)

Or Settings → Privacy → “Clear browsing data for chatgpt.com / openai.com”. Then log in.

Step 3: Allow third-party cookies

chrome://settings/cookies → Sites allowed to use third-party cookies → Add:
[*.]openai.com
[*.]chatgpt.com

Safari → uncheck “Prevent cross-site tracking”. Firefox → ETP set to Standard. Details: Cookies blocked login.

Step 4: Disable extensions one at a time

chrome://extensions → turn all off → log in → re-enable one by one

Or use Incognito (extensions disabled by default) to confirm, then go back to your normal window and hunt the offender. Usual suspects: uBlock, Privacy Badger, Brave Shields, Decentraleyes, NoScript.

Step 5: Disconnect VPN / proxy

Try on your home network directly. If login succeeds, the VPN’s rotating IP was the trigger. Switch to a dedicated-IP exit; never use rotating residential pools.

Step 6: Verify system clock

Mac: Apple menu → System Settings → General → Date & Time → "Set time automatically" ON
Win: Settings → Time & language → Date & time → "Set time automatically" ON
Linux: timedatectl status, set with: sudo timedatectl set-ntp true

Most likely to drift: just came back from airplane mode, just crossed time zones, dual-boot systems.

Step 7: Check the hosts file

Terminal:

cat /etc/hosts | grep -iE 'openai|chatgpt'

Non-empty output = someone redirected the domain. Delete the line (needs sudo), restart browser.

Step 8: Still failing? Check status.openai.com

Open status.openai.com → find “ChatGPT” and “Authentication”. Any non-green = OpenAI-side bug, wait it out.

Prevention

  • One browser profile per ChatGPT account; don’t mix work and personal.
  • Use Chrome multi-profile or Firefox container tabs if you swap accounts often.
  • Choose a VPN with dedicated static IP; rotating residential is the #1 loop trigger.
  • Don’t set “clear cookies on quit” for openai.com — you’ll re-trigger the loop next session.
  • Always keep “set time automatically” on; remember to re-enable after travel.
  • On corporate / school machines, check whether IT modified hosts or installed a TLS proxy before chasing browser fixes.

Tags: #ChatGPT #ChatGPT account #Troubleshooting #Debug #Login loop