You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/debug-openshell-cluster/SKILL.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -178,6 +178,13 @@ Common findings:
178
178
- A workdir rejected as a special filesystem or OpenShell control-path collision cannot be made valid with permissions. Move the image workdir away from kernel-backed mounts and the concrete supervisor, TLS, token, runtime, and socket paths named in the error.
179
179
- Docker driver cannot initialize because it cannot find `openshell-sandbox`: verify `OPENSHELL_DOCKER_SUPERVISOR_BIN`, the sibling binary next to `openshell-gateway`, or the configured supervisor image contains `/openshell-sandbox`.
180
180
- Sandbox never registers: check gateway logs and supervisor callback endpoint.
181
+
- On macOS, repeated `Policy fetch failed after 5 attempts` messages with a
182
+
Homebrew gateway bound to `[::1]:17670` indicate that the Docker
183
+
`host-gateway` IPv4 route has no matching callback listener. Current releases
184
+
leave `bind_address` unset in the Homebrew config, use the built-in
185
+
`127.0.0.1:17670` primary listener, and reuse it for authenticated sandbox
186
+
callbacks. On an older release, set `bind_address = "127.0.0.1:17670"` or
187
+
upgrade.
181
188
- Supervisor image exits before printing `openshell-sandbox --version`: the image should be the scratch supervisor image from `deploy/docker/Dockerfile.supervisor` and must contain a static executable at `/openshell-sandbox`.
182
189
-`mise run e2e:docker:gpu` fails with `docker info --format json did not report any discovered NVIDIA CDI GPU devices`: Docker may report `CDISpecDirs` while still having no generated NVIDIA CDI specs. Verify `.DiscoveredDevices` contains entries such as `nvidia.com/gpu=all`, verify `/etc/cdi` or `/var/run/cdi` contains a generated NVIDIA spec, and check that `nvidia-cdi-refresh.service` and `nvidia-cdi-refresh.path` from NVIDIA Container Toolkit are enabled and healthy. The service is a one-shot unit, so `inactive (dead)` can be normal after a successful run; use `systemctl status` and `journalctl` to distinguish success from a skipped or failed refresh. NVIDIA recommends enabling the path and service units, and restarting `nvidia-cdi-refresh.service` to regenerate missing or stale CDI specs. If specs are generated but Docker still reports no discovered devices, restart Docker or reload the daemon and re-check `docker info`.
183
190
@@ -207,14 +214,9 @@ Common findings:
207
214
error: inspect `podman info --debug`, the configured Podman network, and the
208
215
host's IPv4 default route. Rootless pasta uses the private source address
209
216
selected by that route; rootful Podman uses the bridge gateway address.
210
-
- Callback discovery reports that the requested address equals the primary
211
-
listener: configure a distinct primary address. For Podman Machine, bind the
212
-
primary listener to IPv6 loopback, for example
213
-
`bind_address = "[::1]:17670"`, and register the CLI endpoint as
214
-
`https://localhost:17670`. The generated certificate includes `localhost`,
215
-
while a raw `https://[::1]:17670` endpoint can fail TLS setup with
216
-
`invalid dns name`. This leaves `127.0.0.1:17670` available for the
217
-
callback-only listener.
217
+
- Current gateways reuse the primary listener when it covers Podman's callback
218
+
address. If the primary does not cover that address, inspect the gateway
219
+
startup logs for the additional callback-only listener and its provenance.
218
220
- Rootless slirp4netns, another named helper, or missing helper metadata
219
221
requires an explicitly remote `grpc_endpoint`. An explicit `host_gateway_ip`
220
222
cannot bypass slirp4netns host-loopback isolation. Do not work around
| Gateway exits while resolving compute-driver listener requirements | Callback alias topology is unsupported, the Podman network cannot be inspected, or the selected address is not private/authorized | Gateway startup error, `podman info --debug`, Podman network inspection, host IPv4 default route |
547
-
| Admin, health, reflection, or HTTP request is denied on a Docker/Podman callback address|Negotiated callback listeners intentionally expose only sandbox-callable gRPC methods | Retry through the gateway's primary endpoint; inspect the listener-purpose startup log if the address was unexpected |
549
+
| Admin, health, reflection, or HTTP request is denied on an additional Docker/Podman callback-only listener|Additional callback listeners intentionally expose only sandbox-callable gRPC methods | Retry through the gateway's primary endpoint; inspect the listener-purpose startup log if the address was unexpected |
548
550
| Docker or Podman sandbox never registers | Wrong callback endpoint or supervisor startup failure | Gateway logs and sandbox container logs |
549
551
| Docker GPU e2e fails before GPU sandbox comparison | NVIDIA CDI specs are missing or Docker has not discovered them |`docker info --format '{{json .DiscoveredDevices}}'`, `/etc/cdi`, `/var/run/cdi`, `nvidia-cdi-refresh.service`|
550
552
| Kubernetes gateway pod pending | PVC unbound, taint, selector, or insufficient resources |`kubectl -n openshell describe pod <pod>`|
0 commit comments