Skip to content

Self hosted relay update on 2026/08/07 or client update causes Claude Code agents to fail completely #5260

Description

@apatrida

Describe the bug
All tool calls rejected for Claude by harness, says it is running in "Don't ask mode" even though the launch command is clearly not that. Apparently it is not responding correctly to callbacks and this confuses the harness.

Steps to reproduce

  1. upgrade your relay docker compose today and pray (./run.sh upgrade)
  2. do anything with a claude code agent
  3. it never responds because all shell commands fail

Expected behavior
Claude to still work.

Version and platform
Find your version at the bottom of the Settings sidebar. Write "unknown" if you can't determine it.

  • Buzz version: 0.5.6 client, 2026-08-07 images from docker compose
  • OS: linux

Logs / additional context
...

Smoking gun confirmed. The fresh session's effective runtime state:

"permissionMode":"dontAsk"      ← effective mode
"entrypoint":"sdk-ts"           ← buzz's TypeScript Agent SDK

The process was launched with --permission-mode bypassPermissions, but the SDK is running the session in dontAsk mode. That's the whole bug in one field. dontAsk = auto-deny anything that would otherwise prompt. The CLI flag is overridden by what buzz's SDK passes over the control channel.

Final verdict

This is a buzz bug from the upgrade — you called it. buzz's sdk-ts harness now initializes sessions with permissionMode: 'dontAsk' (or omits the approver so the SDK falls back to it), which supersedes the --permission-mode bypassPermissions launch flag. Every tool call auto-denies; since buzz messages send rides on Bash, agents go completely mute at the first call — exactly the "jail."

Everything else is cleared, with proof:
- Not Anthropic / not retribution — the "403" was the session-id prefix, no server rejection anywhere.
- Not subscription — I ran buzz's exact flags on pure subscription → pong, zero denials.
- Not auth at all — the model responds fine; only tool execution is gated.
- "API key works" is a confound — those agents moved to opencode's harness, which sets the mode correctly. It's the harness, not the credential.
- Restart never could've fixed it — it's code, not process state.

Fixes

Durable (buzz-side, the real fix): buzz must pass permissionMode: 'bypassPermissions' in its SDK query() options — or supply a canUseTool that approves — instead of letting it default to dontAsk. File it against the upgrade / downgrade buzz until patched.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions