Symptom → fix table
| Symptom | Likely cause | Fix |
|---|---|---|
worker failed to register: 401 | Bad / revoked token | Recreate the key in the dashboard, update .env, docker compose up -d |
Tool server failed to start | Compose changed away from network_mode: host | Restore network_mode: host — the sandbox needs it to reach the worker |
port 8085 already in use | Something else on the host is on 8085 | Edit command: ["--port", "8090", ...] in docker-compose.client.yml |
| Image pull blocked | Docker Hub egress blocked | Mirror the image internally — see Outbound endpoints |
| Scan stays “queued” forever | Worker not picked as runner | In Pentest → New Scan, pick your self-hosted worker as the runner |
Scan fails immediately with provider key not configured | LLM provider not set up in the dashboard | Open Pentest → Settings → AI Providers and add a key |
Scan fails with budget exhausted | Per-scan or monthly budget cap reached | Raise the cap or accept the partial result. See Budgets & spend. |
| Worker registers, then disappears every few minutes | Outbound connection unstable / proxy timing out | Check firewall keep-alive policy. Worker uses long-poll; idle connections need to survive ~60s. |
| Sandbox containers OOM-kill mid-scan | Host RAM too low | Bump VM to 16 GB, or reduce --workers to 1 in docker-compose.client.yml |
docker: permission denied | User not in docker group | sudo usermod -aG docker $USER then re-login (or run with sudo) |
Verify outbound connectivity
If the worker can’t register, confirm it can reach the platform:tg_… key from one region is rejected by every other. Ask the host which region it is — the endpoint needs no credentials — and compare that with the region you created the key in:
Verify Docker Hub access
image: line in docker-compose.client.yml accordingly.
Inspect worker state
The worker exposes a small status surface on its host port:/status returns a JSON blob with the connected platform URL, the worker’s external name (as it shows up in Pentest → Scanners), and the scan queue depth. Useful for hooking into your own monitoring.
Resetting the worker
A clean reset that drops all scan artifacts and re-registers the worker:-v removes the tigerstrike_runs volume — historical artifacts are gone but findings already streamed to the platform are unaffected.
Reading verbose logs
Bump the log level if you need more detail:docker compose up -d to apply. Revert when you’re done — debug logs are noisy.
Still stuck?
Email[email protected] with:
- The worker name (from
.env’sTIGERSTRIKE_WORKER_NAME). - The last 200 lines of
docker compose logs. - Output of
curl -s http://127.0.0.1:8085/status.