block / block/buzz

Claude agents fail silently when default model requires usage credits (Fable 5)

Open
#2,265 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

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

1. Install / use Claude Code with a Pro login.
2. Set Claude default model to Fable 5 (or leave it if Claude already chose it), e.g. in `~/.claude/settings.json`:
```json
{ "model": "claude-fable-5[1m]" }
```
3. Start a managed Buzz agent with `agent_command` / override `claude-agent-acp` (welcome team / default agents is enough).
4. Confirm agent presence is online in a channel the agent is a member of.
5. Send `@Bumble hello` (or any mention) from the owner account.
6. 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:

```json
// ~/.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

1. **Surface hard turn failures** to the channel or Agents panel (at least once per failure class; don’t only requeue quietly).
2. On Claude ACP init/prompt errors matching usage-credits / auth, map to a clear readiness / doctor state.
3. 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.
4. Fix `--model` / `BUZZ_ACP_MODEL` so IDs from `buzz-acp models` actually apply via `session/set_model` / `set_config_option`.

### Logs (redacted)

```
INFO buzz_acp: connected to relay ... presence set to online
DEBUG buzz_acp: agent_claimed channel=
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=
```

### 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

- #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)

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with Claude Code set to claude-fable-5[1m] and a managed agent using claude-agent-acp, then follow the buzz-acp session_prompt, queue requeueing, and agent_returned logs. Compare the channel and Agents UI behavior for the reported usage-credit error. Done means the failure is visibly surfaced to users instead of leaving the online agent silent.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.