Files
wehub-resource-sync e0e362d700
SDK Tests / changes (push) Successful in 2m29s
Real E2E Tests / changes (push) Successful in 2m29s
Deploy Docs Pages / build (push) Has been cancelled
Deploy Docs Pages / deploy (push) Has been cancelled
Real E2E Tests / JavaScript E2E (docker bridge) (push) Has been cancelled
Real E2E Tests / Python E2E (docker bridge) (push) Has been cancelled
Real E2E Tests / Java E2E (docker bridge) (push) Has been cancelled
Real E2E Tests / C# E2E (docker bridge) (push) Has been cancelled
Real E2E Tests / Go E2E (docker bridge) (push) Has been cancelled
Real E2E Tests / Real E2E CI (push) Has been cancelled
SDK Tests / SDK CI (push) Has been cancelled
SDK Tests / CLI Tests (push) Has been cancelled
SDK Tests / Python SDK Quality (code-interpreter) (push) Has been cancelled
SDK Tests / Python SDK Quality (sandbox) (push) Has been cancelled
SDK Tests / Python SDK Tests (code-interpreter) (push) Has been cancelled
SDK Tests / JavaScript SDK Quality And Tests (code-interpreter) (push) Has been cancelled
SDK Tests / JavaScript SDK Quality And Tests (sandbox) (push) Has been cancelled
SDK Tests / Python SDK Tests (sandbox) (push) Has been cancelled
SDK Tests / CLI Quality (push) Has been cancelled
SDK Tests / Kotlin SDK Quality And Tests (sandbox) (push) Has been cancelled
SDK Tests / Kotlin SDK Quality And Tests (code-interpreter) (push) Has been cancelled
SDK Tests / C# SDK Quality And Tests (code-interpreter) (push) Has been cancelled
SDK Tests / C# SDK Quality And Tests (sandbox) (push) Has been cancelled
SDK Tests / Go SDK Quality And Tests (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:39:33 +08:00

50 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Troubleshooting
## `exec /opt/opensandbox/bootstrap.sh: operation not permitted`
If sandbox logs show:
```text
exec /opt/opensandbox/bootstrap.sh: operation not permitted
```
check the following first:
1. Verify the script exists and is executable inside the sandbox container:
```bash
docker exec -it <sandbox-container> ls -l /opt/opensandbox/bootstrap.sh
```
2. Verify runtime security/mount constraints are not blocking execution (for example strict
confinement or `noexec` mount behavior in host/container runtime setup).
3. If you are running Docker from Snap-based environments (for example Ubuntu Core), prefer
Docker CE package deployments for production OpenSandbox workloads, because strict runtime
confinement may block this bootstrap execution path in some setups.
4. Re-run with the latest server and execd images to ensure you include the latest runtime fixes.
If this still reproduces, collect:
- `docker info`
- `docker logs opensandbox-server`
- `docker logs <sandbox-container>`
- your `config.toml` (mask secrets)
## Sandbox health check timed out (e.g. on Alibaba Cloud ECS)
If the client reports:
```text
opensandbox.exceptions.sandbox.SandboxReadyTimeoutException: Sandbox health check timed out after 30.0s (2 attempts). Health check returned false continuously
```
when the server runs on a cloud VM (e.g. [Alibaba Cloud ECS](https://github.com/opensandbox-group/OpenSandbox/issues/297)), the client is likely trying to reach the sandbox at an address it cannot access. The server may be returning a bind address such as `127.0.0.1` or an internal LAN IP in the endpoint URL, so the health check from the client side fails.
**Solution:** Set the bound public IP so that the server returns a reachable address in the sandbox endpoint API. In your config (e.g. `~/.sandbox.toml`), under `[server]`, set `eip` to the VMs public IP (or the hostname that clients use to reach the server):
```toml
[server]
host = "0.0.0.0"
port = 8080
eip = "47.x.x.x" # Your ECS public IP, or the hostname clients use to reach this server
```
After restarting the server, the get-endpoint API will use `eip` as the host part of the returned URL, so the client can reach the sandbox for the health check. This applies to the Docker runtime; the server skips resolving `host` when `eip` is set.