Permission classifier for Browser preview_* tools times out persistently across sessions — 'claude-sonnet-4-6 is temporarily unavailable'

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 24, 2026

Environment

  • Claude Code desktop app (Code tab), as of 2026-09-24
  • Session model: claude-sonnet-4-6
  • Platform: Linux (Ubuntu 24.04)
  • Local dev server confirmed healthy before every attempt: docker compose ps → all containers Up/healthy; curl http://localhost:8010/ → HTTP 200; curl http://localhost:8010/incredible-offers/ → HTTP 200
  • .claude/launch.json uses a URL-attach entry (no start command): {"name":"aroma-wp","url":"http://localhost:8010","port":8010,"autoPort":false}

What happens

Any call to the Browser preview tool family fails with:

claude-sonnet-4-6 is temporarily unavailable (timed out), so auto mode cannot determine the safety of mcp__Claude_Browser__preview_list right now. Wait a moment and then try this action again...

And for preview_start:

claude-sonnet-4-6 is temporarily unavailable (timed out), so auto mode cannot determine the safety of mcp__Claude_Browser__preview_start right now.

Scope of the block

  • Affects both read-only preview_list and mutating preview_start. They are classified independently — preview_list occasionally succeeds, but that is not a reliable signal that preview_start will pass.
  • Persists across fresh sessions (not per-session state).
  • Persists across all permission modes: auto, default/manual, and bypassPermissions.
  • Reproduced consistently 2026-09-17 → 2026-09-24 (a full week), in every session that attempted preview use.

Prior diagnosis

Per the claude-code-guide agent and official docs:

  • The timeout means the permission classifier's API call failed to return a decision — not that the action was unsafe.
  • The classifier normally uses a dedicated model (Sonnet 5), but falls back to the session model when that's unavailable. Here the session model is claude-sonnet-4-6, and that fallback call itself reports "temporarily unavailable (timed out)".
  • This looks like a stuck fallback chain: claude-sonnet-4-6 is unavailable, the classifier falls back to it, and the fallback call times out, blocking the whole preview tool family.

Why this seems like a bug rather than a transient failure

  • A single transient timeout would resolve within minutes. This has persisted across 5+ days and multiple independently-created sessions, with no settings changes that would affect the classifier path.
  • The documented recovery guidance ("retry after a wait; if it keeps failing, investigate the API connection") does not resolve it — retries over 8 days have all timed out.
  • Once, in a prior session, a preview_start call did break through the classifier and returned a real config error, which shows the layer itself works when the classifier happens to respond. So the block is intermittent-but-mostly-down, not a hard prohibition.

Impact

Browser preview is completely non-functional for this project. Workaround is server-side verification via curl (works, but cannot verify visual layout, responsive behavior, or JS-driven interactions such as countdown timers). This has blocked visual verification of a shipped web page for over a week.

Requested

  • Confirm whether claude-sonnet-4-6 being listed as "temporarily unavailable" is the actual root cause of the classifier timeout (vs. a classifier-side outage).
  • If the session-model fallback is what's timing out, consider either (a) retrying the dedicated classifier model (Sonnet 5) when the fallback is unavailable instead of surfacing the session-model timeout, or (b) not locking a session to a fallback model that then becomes unavailable.
  • Provide a way to clear a stuck classifier-model lock without restarting the whole app.

View original on GitHub ↗