Repository navigation
Description
Summary
Default agents (e.g. Bumble) appear online and receive @mentions, but never reply in-channel when Claude Code’s default model is set to Fable 5 (claude-fable-5[1m]), which requires usage credits on a Claude Pro subscription.
The harness logs a clear error and requeues the turn; the Desktop UI and channel stay silent. From the user’s perspective the agent is “broken.”
Environment
- Buzz Desktop v0.4.21
- Runtime: Claude Code via
claude-agent-acp - Claude auth: claude.ai Pro (
claude auth status→loggedIn: true,subscriptionType: pro) - Relay: hosted community relay (e.g.
wss://*.communities.buzz.xyz) - macOS arm64
Steps to reproduce
- Install / use Claude Code with a Pro login.
- Set Claude default model to Fable 5 (or leave it if Claude already chose it), e.g. in
~/.claude/settings.json:{ "model": "claude-fable-5[1m]" } - Start a managed Buzz agent with
agent_command/ overrideclaude-agent-acp(welcome team / default agents is enough). - Confirm agent presence is online in a channel the agent is a member of.
- Send
@Bumble hello(or any mention) from the owner account. - Observe: no reply in the channel; no in-app error surface about credits/model.
Expected
- Agent replies, or
- Agent/Desktop posts a visible failure in-channel or in the Agents UI, e.g.
“Claude model Fable 5 requires usage credits — switch model or run/usage-credits.”
Actual
- Mention is received and dispatched by
buzz-acp. - Claude ACP session starts, then fails:
Fable 5 requires usage credits. Run /usage-credits to continue or switch models with /model. session_prompt error: Agent reported error (code -32603): Internal error: Fable 5 requires usage credits... requeueing failed batch with backoff agent_returned (application error — pipe intact) outcome=error - Channel stays empty; user only sees silence.
Workaround
Change Claude default model to a plan-included model:
// ~/.claude/settings.json
{ "model": "sonnet" }Restart agents. After that, @Bumble replies normally (verified: agent pubkey replied pong in #general).
Related / secondary bug
buzz-acp --model sonnet / BUZZ_ACP_MODEL=sonnet did not override the bad default:
desired model sonnet not found in agent's available models — proceeding with agent default
even though buzz-acp models --agent-command claude-agent-acp lists sonnet under stable configOptions. Session then still hit Fable 5 until ~/.claude/settings.json was changed.
Suggest treating model-override catalog matching as a follow-up, but the user-visible bug is silent failure on LLM/auth/credit errors.
Suggested fix directions
- Surface hard turn failures to the channel or Agents panel (at least once per failure class; don’t only requeue quietly).
- On Claude ACP init/prompt errors matching usage-credits / auth, map to a clear readiness / doctor state.
- Prefer a safe default model for Claude Pro (sonnet/haiku) when Fable requires extra credits, or warn at agent start if default model is credit-gated.
- Fix
--model/BUZZ_ACP_MODELso IDs frombuzz-acp modelsactually apply viasession/set_model/set_config_option.
Logs (redacted)
INFO buzz_acp: connected to relay ... presence set to online
DEBUG buzz_acp: agent_claimed channel=<uuid>
INFO acp::session: session created: ...
INFO acp::stream: Fable 5 requires usage credits. Run /usage-credits to continue or switch models with /model.
ERROR pool::prompt: session_prompt error: ... code -32603 ... Fable 5 requires usage credits
WARN buzz_acp::queue: requeueing failed batch with backoff attempt=1
WARN buzz_acp: agent_returned outcome=error configured_model=<none|sonnet>
Impact
High for first-run / default agents: welcome team looks alive (online) but never answers if Claude’s default is Fable 5. Easy to misdiagnose as “agents don’t work” or relay/auth issues.
Related issues
- Agent @mentions silently fail when mentioned agent is offline #1743 — Agent @mentions silently fail when mentioned agent is offline (related silent-failure UX; this issue is when the agent is online but the LLM fails)
Activity
chessing234 commentedon Jul 23, 2026
Fixed in #2512 — credit failures post a channel notice immediately; sonnet aliases resolve; Agents UI shows clearer copy.
mikececco commentedon Aug 3, 2026
#4519 addresses the "fail silently" part of this, if not the underlying cause.
When a requested model can't be matched against the harness catalog,
pool.rs:958logs a warning and proceeds on the agent's default. The desktop only ever receivedmodelOverridden: falsefor that — which is also what "no model was requested" reports — so the two were indistinguishable and nothing surfaced.#4519 adds
requestedModel+modelAppliedto the session frame and renders<model> not appliedin the picker, so a rejected model stops looking identical to a deliberate default.That's narrower than this issue: it won't tell you the fallback happened because the model requires credits. Surfacing the harness's actual reason would need the refusal cause plumbed through as well, which I haven't attempted.
feat(managed-agents): close five Claude Code agent-config gaps (#4557)
feat(managed-agents): isolate Claude Code agent config per-agent root
feat(managed-agents): isolate Claude Code agent config per-agent root
feat(managed-agents): close five Claude Code agent-config gaps (block…
feat(managed-agents): close five Claude Code agent-config gaps (block…
feat(managed-agents): close five Claude Code agent-config gaps (block…