Skip to content

fix(multi-pod): pin STUDIO_SANDBOX_RUNNER=docker to unblock attach-cross-pod#3436

Merged
tlgimenes merged 1 commit into
mainfrom
tlgimenes/debug-ci-job-77293975289
May 22, 2026
Merged

fix(multi-pod): pin STUDIO_SANDBOX_RUNNER=docker to unblock attach-cross-pod#3436
tlgimenes merged 1 commit into
mainfrom
tlgimenes/debug-ci-job-77293975289

Conversation

@tlgimenes
Copy link
Copy Markdown
Contributor

@tlgimenes tlgimenes commented May 22, 2026

What is this contribution about?

Fixes the attach-cross-pod multi-pod CI failure where POST /api/:org/decopilot/threads/:id/messages returned 409 link_unavailable / link_offline (see failing job).

Root cause: tests/multi-pod/docker-compose.yml didn't set STUDIO_SANDBOX_RUNNER, so resolveSandboxProviderKindFromEnv() defaulted to "remote-user". With no link daemon registered in CI, resolveDispatchTarget rejected the request before it could enqueue. PR #3434 removed the eager ensureVm() (which had been 500-ing) but the dispatch check that gates on link presence stayed, so the symptom shifted from 500 → 409 without fully fixing the test.

Pinning STUDIO_SANDBOX_RUNNER=docker on the mesh services makes resolveDispatchTarget short-circuit to the local cluster default (no link check), and no real sandbox is provisioned because ensureVm is lazy (built-in-tools/index.ts:159-184) and the mock-AI scenario never emits tool calls.

How to Test

  1. Start Docker Desktop.
  2. Run ./tests/multi-pod/run.sh.
  3. attach-cross-pod should pass (along with the rest of the suite).

Summary by cubic

Pins STUDIO_SANDBOX_RUNNER=docker in tests/multi-pod/docker-compose.yml to fix attach-cross-pod failing with 409 link_offline on POST /api/:org/decopilot/threads/:id/messages. This forces local dispatch and avoids any sandbox provisioning since ensureVm is lazy.

  • Bug Fixes
    • Unset runner defaulted to "remote-user", triggering a link check and 409 in CI. Setting it to docker short-circuits to the local cluster and unblocks the test.

Written for commit baf57c5. Summary will update on new commits. Review in cubic

…nk-gated

Without an explicit runner the env defaults to "remote-user", and
resolveDispatchTarget then 409s with link_offline because CI doesn't run a
link daemon. PR #3434 removed the eager ensureVm() but left the dispatch
check in place, so attach-cross-pod still failed at POST /messages.
Pinning to "docker" makes resolveDispatchTarget short-circuit to the local
cluster default; no sandbox is actually provisioned because ensureVm is
lazy and the mock-ai scenario never emits tool calls.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Re-trigger cubic

@tlgimenes tlgimenes merged commit 12a6c22 into main May 22, 2026
12 checks passed
@tlgimenes tlgimenes deleted the tlgimenes/debug-ci-job-77293975289 branch May 22, 2026 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant