X_SHOT_ISLAND_UNPHOTOGRAPHABLE
Means
the island never reached a state worth photographing
Typical cause
one of eight assertions failed before the shutter: no probe, not the harness document, no host element, a mount that rejected or never finished, a page that never went quiet, a zero-sized box, a box with no children or text, or bytes under the floor. Asserting BEFORE capturing is what separates this from a screenshot script — a component whose fetch hangs paints its own loading branch and photographs as a real state
Fix
the cause names which assertion failed; re-run with a longer settle window: x shot --island <name> --settle 8000 --json