Fixes → Proxy returns no targets
The proxy runs, but returns no targets
ios_webkit_debug_proxy starts without complaining, the port answers, and the target list is empty. Five things cause this. Checked in the order below, you will normally find it in under a minute.
You are in the right place if:
the proxy is running and http://localhost:9221/json returns [], or lists a device but no pages, while the iPhone is plugged in and unlocked.
Where this sits
- This PC Windows verified
- Apple driver usbmux verified
- Debug proxy WebKit bridge verified
- iPhone not visible failed
- Safari Web Inspector not reached
Check these five, in this order
- Is the phone trusted? Unlock it and look for Trust This Computer. If it was dismissed once, it will not reappear on its own. Unplug and reconnect the cable to raise it again. An untrusted phone is visible to Windows and invisible to the proxy, which is why it charges perfectly while nothing can debug it.
- Is Web Inspector on? Settings → Apps → Safari → Advanced → Web Inspector. On older iOS it is Settings → Safari → Advanced. Off by default, and turning it on does not require a restart.
- Is at least one Safari tab actually open? The proxy reports pages, not devices. A phone with Safari closed entirely, or showing only the tab switcher, has nothing to list. Open a real page and re-check.
- Is the phone locked, or is the screen off? A locked phone drops its inspectable pages. Keep it awake for the duration. turning up Auto-Lock to a few minutes saves a lot of confusion.
- Did Apple Devices restart while the phone was connected? The proxy can keep answering with a stale, empty device list rather than rediscovering. Stop the proxy and start it again. If the port itself is dead, the cause is upstream. See the USB service not running.
Confirming which half is wrong
To separate “the proxy cannot see the phone” from “the phone has no inspectable page”, check the device list and the page list separately:
curl http://localhost:9221/json
A device entry with no pages means the phone is trusted and reachable and the problem is on the phone; check steps 2, 3, or 4. No device entry at all means the problem is below the phone; check steps 1 or 5.
Why one message covers so many causes
The proxy reports what it can see. An untrusted phone, a phone with Web Inspector off, a locked phone and a stale device list are four different conditions that all present as nothing to inspect, because from the proxy's side they are indistinguishable. That is not a flaw in the proxy; it genuinely cannot tell them apart. It does mean the empty list carries almost no diagnostic information on its own.