Step 3 / recovery UX
When browser auth gets weird, the product should recover gracefully.
Callback capture failures, expired sessions, denied scopes, and partial provider state must be legible and recoverable. We should never strand the user inside raw provider errors.
Automatic callback capture
Preferred path when localhost callback succeeds.
Paste callback URL
Fallback for headless, sandboxed, or cross-browser cases where auto-capture fails.
Reconnect or switch method
If OAuth fails, present a clean API-key or alternate login path instead of dead-ending.
Example degraded-state screen
We could not complete OpenAI connection automatically
Your browser finished the provider login, but SocioProphet did not receive the callback locally. Choose one recovery path below.
Connection states we should support
- • Not connected
- • Connecting
- • Connected
- • Needs re-auth
- • Limited capability
- • Failed test
- • Revoked