diff --git a/backend/apps/agents/agents.py b/backend/apps/agents/agents.py index 50f3b25c..081ab740 100644 --- a/backend/apps/agents/agents.py +++ b/backend/apps/agents/agents.py @@ -401,8 +401,8 @@ async def subscriptions_connect(body: dict): result = await start_oauth(provider) if result.get("flow") == "authorization_code" and result.get("state"): - from backend.main import p_pending_oauth - p_pending_oauth[result["state"]] = { + from backend.apps.oauth_state import pending_oauth + pending_oauth[result["state"]] = { "provider": provider, "code_verifier": result.get("code_verifier", ""), "redirect_uri": result.get("redirect_uri", ""), diff --git a/frontend/src/app/pages/Settings/sections/subscription/SubscriptionCards.tsx b/frontend/src/app/pages/Settings/sections/subscription/SubscriptionCards.tsx index 5c84936b..200dc5e9 100644 --- a/frontend/src/app/pages/Settings/sections/subscription/SubscriptionCards.tsx +++ b/frontend/src/app/pages/Settings/sections/subscription/SubscriptionCards.tsx @@ -17,6 +17,17 @@ import { SUBSCRIPTION_PROVIDERS } from './subscriptionProviders'; import SubscriptionCard from './SubscriptionCard'; import { runConnectFlow } from './subscriptionConnect'; +function friendlyConnectError(detail: string): string { + const d = (detail || '').trim(); + const lower = d.toLowerCase(); + if (!d) return 'Could not start the login. Please try again.'; + if (lower.includes('1455') || lower.includes('1457') || lower.includes('codex login ports')) return d; + if (lower.includes('import name') || lower.includes('traceback') || lower.includes('/backend/') || lower.includes('backend.')) { + return 'Could not start the login. Please try again.'; + } + return d.length > 180 ? 'Could not start the login. Please try again.' : d; +} + const SubscriptionCards: React.FC = () => { const c = useClaudeTokens(); const dispatch = useAppDispatch(); @@ -84,7 +95,7 @@ const SubscriptionCards: React.FC = () => { // instead of silently dropping the spinner. let detail = ''; try { detail = (await r.json())?.detail || ''; } catch {} - setConnectError(detail || 'Could not start the login. Please try again.'); + setConnectError(friendlyConnectError(detail)); setConnecting(null); return; }