Preflight
Summary
Summary:** Every task run (both standard and scan kinds, via the onboarding/environment-setup flow) hangs indefinitely right after opencode-server finishes bootstrapping. No error, no output, zero CPU, zero network activity — the process is just silently stuck. GET /doc on the opencode server responds instantly; GET /session hangs forever with 0 bytes.
Repro steps:
- Fresh self-hosted install, complete GitHub App + OpenRouter setup
- Start the first environment/task from the setup wizard
- Worker container spawns, clones the repo,
opencode-server starts, bootstraps, fetches models.dev + provider catalog successfully
githubTokenRefresh completes
- Nothing further happens —
curl http://127.0.0.1:<port>/session inside the container times out with 0 bytes; /doc responds fine
- Task run never produces
first_assistant_output_at, stays running until manually canceled
Problem area
Worker or controller, Fresh install
Installation method
Docker Compose
Roomote version
v0.5.0
Previous version
v0.4.2
Environment
- Self-hosted via
curl -fsSL https://get.roomote.dev | bash --domain <local-ip>, Multipass VM, Docker Compose, compute provider: Docker
- Reproduced on both
v0.4.2 and v0.5.0 (upgraded via roomote upgrade v0.5.0)
- Reproduced on both bundled opencode
1.17.8 and manually-pinned 1.18.1 (via ROOMOTE_BAKED_OPENCODE_CLI_VERSION)
- Reproduced across two different models (
openrouter/anthropic/claude-sonnet-5, openrouter/openai/gpt-5.6-terra)
- Network health confirmed clean at time of hang (no packet loss, no stuck TCP connections) — ruled out as cause
- Source-control provider: GitHub App, private repo
Command or upgrade path
curl -fsSL https://get.roomote.dev | bash -s -- --domain <local-ip>
# later:
roomote upgrade v0.5.0
# then: start the first environment/task from the setup wizard
Expected behavior
After the worker spawns, clones the repo, and opencode-server finishes bootstrapping, the task should proceed to actually start the session, send the initial prompt to the model, and begin producing output (first_assistant_output_at gets set, task transcript shows activity).
Actual behavior
The task hangs indefinitely right after bootstrap — no error, no further log lines, zero CPU, zero network activity inside the worker container. GET /doc on the local opencode-server responds instantly, but GET /session never returns (times out with 0 bytes). The task run stays in running status forever with first_assistant_output_at never set, until manually canceled. Reproduced identically across two Roomote versions (v0.4.2, v0.5.0) and two opencode CLI versions (1.17.8, 1.18.1).
Diagnostics output
No response
Logs
[INFO] Prepared OpenCode config overlayDir=.../opencode workspace=/sandbox/repos mcpServers=1 model=openrouter/anthropic/claude-sonnet-5
[INFO] [opencode-server] Launching OpenCode server command=opencode args=["serve","--hostname","127.0.0.1","--port","<port>","--print-logs","--log-level","INFO"]
[INFO] [opencode-server:stdout] opencode server listening on http://127.0.0.1:<port>
[INFO] [opencode-server] OpenCode server harness connected baseUrl=http://127.0.0.1:<port> sessionId=none
[LOG] [runTask] Sandbox server started on port 4200
[INFO] [runTask] Initial input: promptChars=846 imageCount=0 harnessSessionId=none
[INFO] [HarnessManager#startNewTask] Starting new task
[INFO] [HarnessManager] Phase: idle -> running
[INFO] [githubTokenRefresh] Refreshing source control token for task run #N
[INFO] [opencode-server:stderr] message="creating instance" directory=/sandbox/repos
[INFO] [opencode-server:stderr] message=bootstrapping directory=/sandbox/repos
[INFO] [githubTokenRefresh] Refreshed github token for task run #N (source=app, nextRefreshAt=...)
--- nothing further, forever ---
$ curl --max-time 3 http://127.0.0.1:<port>/doc -o /dev/null -w '%{http_code}\n'
200
$ curl --max-time 3 http://127.0.0.1:<port>/session -o /dev/null -w '%{http_code}\n'
curl: (28) Operation timed out after 3005 milliseconds with 0 bytes received
Workarounds tried
No response
Preflight
Summary
Summary:** Every task run (both
standardandscankinds, via the onboarding/environment-setup flow) hangs indefinitely right afteropencode-serverfinishes bootstrapping. No error, no output, zero CPU, zero network activity — the process is just silently stuck.GET /docon the opencode server responds instantly;GET /sessionhangs forever with 0 bytes.Repro steps:
opencode-serverstarts, bootstraps, fetchesmodels.dev+ provider catalog successfullygithubTokenRefreshcompletescurl http://127.0.0.1:<port>/sessioninside the container times out with 0 bytes;/docresponds finefirst_assistant_output_at, staysrunninguntil manually canceledProblem area
Worker or controller, Fresh install
Installation method
Docker Compose
Roomote version
v0.5.0
Previous version
v0.4.2
Environment
curl -fsSL https://get.roomote.dev | bash --domain <local-ip>, Multipass VM, Docker Compose, compute provider: Dockerv0.4.2andv0.5.0(upgraded viaroomote upgrade v0.5.0)1.17.8and manually-pinned1.18.1(viaROOMOTE_BAKED_OPENCODE_CLI_VERSION)openrouter/anthropic/claude-sonnet-5,openrouter/openai/gpt-5.6-terra)Command or upgrade path
Expected behavior
After the worker spawns, clones the repo, and
opencode-serverfinishes bootstrapping, the task should proceed to actually start the session, send the initial prompt to the model, and begin producing output (first_assistant_output_atgets set, task transcript shows activity).Actual behavior
The task hangs indefinitely right after bootstrap — no error, no further log lines, zero CPU, zero network activity inside the worker container.
GET /docon the localopencode-serverresponds instantly, butGET /sessionnever returns (times out with 0 bytes). The task run stays inrunningstatus forever withfirst_assistant_output_atnever set, until manually canceled. Reproduced identically across two Roomote versions (v0.4.2,v0.5.0) and two opencode CLI versions (1.17.8,1.18.1).Diagnostics output
No response
Logs
Workarounds tried
No response