doctor fails the cloud-reachability check | Egress to https://api.trylaunchkit.ai blocked, or wrong LAUNCHKIT_API_URL | Allow outbound HTTPS from the worker host; check the URL has no typo and uses https:// |
doctor reports the key invalid or unauthorized | Key revoked, or LAUNCHKIT_RUNTIME_ID does not match the runtime the key was minted for | Confirm both values against what your LaunchKit contact delivered; a key only works for its own runtime |
| Daemon exits immediately and systemd does not restart it | HTTP 426: worker version below the runtime’s floor | Install the newer wheel provided by your LaunchKit contact, then systemctl restart launchkit-worker |
doctor warns or fails on clock skew | Host clock drift above 30s (warn) or 300s (fail) | Fix NTP on the worker host |
doctor fails the plane-reachability check | Wrong E2B_DOMAIN/E2B_API_URL, plane down, or TLS failure to an intranet CA | Verify the plane variables; for a private CA set SSL_CERT_FILE (see Compatibility) |
doctor --probe fails the pause check | Plane does not support pause-with-disk-parity (CubeSandbox older than v0.5.0) | Upgrade the plane, then re-run the probe |
doctor --probe fails the snapshot check, or the runtime shows a snapshot probe failed error | Plane cannot snapshot/fork (CubeSandbox older than v0.5.1), or the worker wheel is older than 0.5.0 | Upgrade the plane to >= v0.5.1 and the worker wheel to >= 0.5.0, re-run doctor --probe, then have the runtime re-probed |
| Runtime shows workers offline in LaunchKit | Daemon not running, or egress dropped | systemctl status launchkit-worker and journalctl -u launchkit-worker on the worker host |
| Operations reported as indeterminate after a host failover | The new host has no journaled outcome for re-delivered operations (safety behavior, not a bug) | Expected once per failover; keep the journal on persistent storage so same-host restarts recover cleanly |