Skip to content

buzz-acp channel discovery 404s — relay has no GET /api/channels route, and the harness reports the failure as discovered 0 channel(s) #4538

Description

@andali

buzz-acp channel discovery 404s — relay has no GET /api/channels route, and the harness reports the failure as discovered 0 channel(s)

Summary

Update: root cause identified in the comments — GET /api/channels returns 404 on the relay; the harness reports this as zero channels rather than an error.

On a self-hosted relay built from main, managed agents never subscribe to any
channel. The harness logs discovered 0 channel(s) and
no channel subscriptions resolved — agent will sit idle on every start, even
though the relay itself confirms the agent is a relay member and a member of
the channel. @mentions are therefore silently dropped and no agent ever
responds.

The desktop app shows a non-zero channel count for the same agent, so the UI and
the harness's discovery query disagree.

Environment

  • Host: WSL2, Ubuntu 24.04.3 LTS (kernel 6.6.87.2-microsoft-standard-WSL2)
  • Buzz: built from source, main, cloned 3 August 2026
  • Relay: local, just dev, ws://localhost:3000
  • Community: seeded localhost:3000 at first start
  • Agent: Fizz — one of the default Welcome Team agents created by onboarding
  • Runtime: claude-agent-acp v0.64.2 (Claude Code, installed via the app's
    harness setup page)
  • Agent pubkey: d00fe41a4d443c47fe7870f665f19a9c9d1e108c3cc4149c75d3c277f4044464

Expected

The harness discovers the channels the agent belongs to, subscribes, and
responds to @mentions from its owner.

Actual

Every start ends with:

INFO buzz_acp: connected to relay at ws://127.0.0.1:3000
INFO buzz_acp: subscribed to membership notifications
INFO buzz_acp: owner resolved from BUZZ_AUTH_TAG: c26482b9…fd97
INFO buzz_acp: agent owner: c26482b9…fd97
INFO buzz_acp: relay observer enabled
INFO buzz_acp: discovered 0 channel(s)
WARN buzz_acp: no channel subscriptions resolved — agent will sit idle
INFO buzz_acp: presence set to online

The agent pool initialises cleanly (agent_pool_ready agents=10), the ACP
handshake succeeds for all ten subprocesses, the relay connection succeeds, and
the owner resolves. Only discovery returns nothing.

Evidence that the memberships exist

Channel membership — the agent is present with role: "bot":

$ buzz-cli channels members --channel adafd400-706c-5c13-bf02-bc2ebb45b1c7
[{"pubkey":"c26482b9…fd97","role":"owner"},
 {"pubkey":"d00fe41a…4464","role":"bot"}]

Relay membership — added manually via buzz-admin:

$ buzz-admin list-members
pubkey                    role     added_by   created_at
d00fe41a…4464             member   -          2026-08-03T12:30:11Z

Channel announcement events are present:

$ buzz-admin reconcile-channels
Reconciled 0 channels (3 already had events, 3 total).

Desktop UI: the agent's profile panel shows Channels 2.

Steps to reproduce

  1. Clone main, just setup && just build, just dev.
  2. Complete onboarding: create identity, install the Claude Code ACP adapter,
    join ws://localhost:3000 via Join a community, accept the default
    Welcome Team agents.
  3. Start Fizz from the Agents panel.
  4. Open the Harness Log.

Observed: discovered 0 channel(s) on every start.

Things tried, each followed by a full agent restart

Action Result
Restart agent alone (×3) discovered 0
Add agent to public #general via the desktop UI discovered 0
buzz-admin reconcile-channels 3 channels already had events; discovered 0
Set BUZZ_RELAY_PRIVATE_KEY, restart relay, buzz-admin add-member discovered 0

Timing was ruled out: relay membership was written at 12:30:11Z and the
harness restarted at 12:30:54Z, 43 seconds later, still reporting 0.

Notes

  • respond_to=owner-only is the default and the owner resolves correctly from
    BUZZ_AUTH_TAG, so the author gate is not the cause — discovery fails before
    any event reaches it.
  • The relay was initially running on the hardcoded dev keypair. Setting a stable
    BUZZ_RELAY_PRIVATE_KEY was required before buzz-admin add-member would run
    at all, but did not change the outcome.
  • The gap between the UI's channel count and the harness's discovery result
    suggests the two read membership from different places.

Related

Not a duplicate of #2270 (agents deaf to untagged thread replies) or #1743
(mentions lost when the agent is offline) — in both of those the agent has
resolved channel subscriptions. Here it has none.

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