When the dashboard token refresh endpoint returned 429 (shared critical rate limit) the frontend classified it as out_of_sync, cleared local auth state, and redirected to /sign-in. The rate limit itself is working as intended; the bug is that a temporary rejection was treated as a terminal auth failure. - Treat 429 refresh responses as transient errors on the frontend, keeping the session retryable instead of clearing it. Only explicit 401 or confirmed session mismatch/race exhaustion clears auth state. - Return Retry-After on all rate-limited responses (remaining TTL on Redis, window duration on the in-memory limiter) so clients can back off. - Log the underlying error with request context when auth session errors map to 500 AUTH_INTERNAL_ERROR, and replace fmt.Println with request-scoped logging in the Redis rate limiter error paths. Fixes #6361
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| public | Loading commit data... | |
| scripts | Loading commit data... | |
| src | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .node-version | Loading commit data... | |
| .npmrc | Loading commit data... | |
| .oxfmtrc.json | Loading commit data... | |
| .oxlintrc.json | Loading commit data... | |
| AGENTS.md | Loading commit data... | |
| bun.lock | Loading commit data... | |
| components.json | Loading commit data... | |
| cz.yaml | Loading commit data... | |
| index.html | Loading commit data... | |
| knip.config.ts | Loading commit data... | |
| netlify.toml | Loading commit data... | |
| package.json | Loading commit data... | |
| rsbuild.config.ts | Loading commit data... | |
| tsconfig.app.json | Loading commit data... | |
| tsconfig.json | Loading commit data... | |
| tsconfig.node.json | Loading commit data... |