iOS Simulator panel stuck in infinite crash-loop — sidecar startVideo always times out after 10s

Status Open
Maintainer reply None cached
Activity 0 comments · opened Jul 22, 2026

Environment

  • macOS 26.5.2 (build 25F84)
  • Xcode 26.5 (build 17F42)
  • Claude Desktop app: v1.24012.1
  • Affected simulator: iPhone 17e, iOS 26.3 (UDID EDDB587D-FEA3-4F2E-BC40-5C939E72D14C)

Symptom
The "iOS Simulator" panel gets stuck showing:

"Claude Code iOS Simulator is restarting after a crash. Try again in 1s."

in an infinite loop. Closing/reopening the tab, quitting/reopening the whole Claude app, and killing/reopening macOS's own Simulator.app do not fix it.

Root cause (confirmed via ~/Library/Logs/Claude/main.log)
The app spawns a native helper ("sidecar", Contents/Helpers/Claude iOS Sim.app/Contents/MacOS/claude-ios-sim) responsible for two separate planes:

  1. Control plane (attach/describe/tap/screenshot) — works perfectly, confirmed repeatedly via the control tool.
  2. Video plane (H264 stream feeding the panel canvas) — the startVideo call hangs and times out after 10000ms, every single time, with no exceptions across the captured logs.

Exact cycle, repeating every ~20-30s:

sidecar spawn: claude-ios-sim
attached ios iPhone 17e ... 1170x2532          <- attach (control) OK
failed to open frame stream: Error: sidecar startVideo timed out after 10000ms   <- video fails
attach ... follows a sidecar crash — treating as the panel's auto-reattach
sidecar unresponsive (2 consecutive timeouts) — killing so the next call respawns it
sidecar crash — detaching 1 iOS device(s): sidecar detach timed out after 10000ms   <- even detach hangs
[loop restarts from spawn]

On the renderer side (claude.ai-web.log), the component drawing the video confirms the symptom:

[SimulatorH264Canvas] stream HTTP 503

i.e. the front-end keeps polling for the video stream and getting 503 (service unavailable), because the sidecar's startVideo never actually comes up.

Steps to reproduce

  1. Open a session with the iOS Simulator panel attached to an already-booted device.
  2. Leave it running — startVideo hangs on its own after ~10s, with no user action.
  3. Observe the app attempt to self-recover indefinitely (spawn → attach → timeout → kill → detach timeout → spawn...) without ever keeping the video stream up.

Impact

  • Live-view panel 100% unusable in this session — user sees nothing but the "connect" screen.
  • Control-plane calls (screenshot, tap, text) keep working via the tool/MCP layer — which masks the problem for anyone only checking "from outside."
  • Not fixed by: reopening the tab, quitting/reopening the app, killing/reopening Simulator.app, switching device.

Suggestion for maintainers
Investigate why startVideo in the sidecar (claude-ios-sim) hangs systematically after ~10s in this environment (macOS 26.5.2 + Xcode 26.5 + iOS 26.3 runtime) — possibly a version mismatch between the streaming helper and this runtime/Xcode combo, since control-plane attach works fine.

View original on GitHub ↗