Unable to boot the iOS simulator

Booting a simulator fails outright ("Unable to boot device") or the device sits in Booting forever and never reaches Booted.

Strong fit Likely class: simulator boot failure · Updated

Symptom

Booting a device fails. Either xcrun simctl boot (or Simulator.app, or xcodebuild) returns an error like Unable to boot device, or the device enters Booting and stays there indefinitely without ever reaching Booted.

What it usually looks like

Why it happens / likely failure classes

The boot transition could not complete:

When this happens before XCTest attaches, XCSteward classifies the job as runner_bootstrap_failure, meaning runner or environment setup failed before XCTest attached. That classification is separate from test_failure, because no test execution really started.

Quick checks

# Boot explicitly and wait — does it error, or hang in Booting?
xcrun simctl boot <UDID>
xcrun simctl bootstatus <UDID> -b

# Is the runtime actually present and not "unavailable"?
xcrun simctl list runtimes
xcrun simctl list devices | grep -i unavailable

# Is the subsystem responsive at all?
pgrep -lf CoreSimulatorService

If other simctl commands also hang, treat this as a subsystem problem first — see simctl not responding.

Manual mitigations

Escalate from least to most disruptive:

  1. Shut down and re-boot the device cleanly:

    xcrun simctl shutdown <UDID>
    xcrun simctl boot <UDID>
    xcrun simctl bootstatus <UDID> -b
  2. Erase a device stuck in a bad state:

    xcrun simctl shutdown <UDID> 2>/dev/null
    xcrun simctl erase <UDID>
  3. Restart CoreSimulatorService if boots fail broadly (quit Simulator.app first):

    killall -9 com.apple.CoreSimulator.CoreSimulatorService 2>/dev/null || true
  4. Recreate the device if it is corrupt:

    xcrun simctl delete <UDID>
    xcrun simctl create "iPhone 16" "iPhone 16" "iOS18.2"

When XCSteward may help

Getting to a reliably booted device is exactly what XCSteward’s readiness model targets:

A strong candidate to test against this class of failure.

When XCSteward probably will not help

Common questions

What does "Unable to boot the iOS simulator" usually mean?
It usually points to simulator boot failure. Booting a simulator fails outright ("Unable to boot device") or the device sits in Booting forever and never reaches Booted. Start by checking simulator readiness, destination selection, CoreSimulator/simctl responsiveness, and whether another xcodebuild, simctl, or Simulator process is already active before treating it as a test-code failure.
Can XCSteward help with "Unable to boot the iOS simulator"?
This is a strong fit when the failure is operational: simulator readiness, destination resolution, CoreSimulator responsiveness, cleanup, timeouts, or local concurrency. XCSteward may help by making those phases bounded, serialized, and easier to inspect. It will not fix broken tests, code signing, missing runtimes, or vendor image bugs.
What should I check first?
Check whether xcrun simctl commands return promptly, whether xcodebuild can resolve a concrete simulator destination, whether the device is truly ready rather than merely Booted, and whether concurrent agents, scripts, or manual runs are touching the same simulator subsystem.