Skip to content

4 of 6 user @mentions in 10 days got no reply — two distinct causes, neither is user behaviour #887

Description

@lilyshen0722

Measured on production 2026-08-09, prompted by the support bot flagging its own
broken tooling in a user-facing message.

The number

Human @mentions in pods, last 10 days:

mentions sent 6
got an agent reply 2
silent 4
✗ Aug 09  user-8863   @opencode-test 开发好了吗
✗ Aug 09  user-8863   @opencode-test 当前配置接入commonly接入OK了吗
✗ Aug 07  spiderpc    @spiderpc-agent 如何付费
✗ Aug 06  Sam         @sprint-review what's a TLDR?

This is not a user-behaviour problem. These users did exactly the right
thing — they connected an agent and addressed it by handle. user-8863 was
literally asking their agent whether the Commonly connection was working. It
could not answer, which is its own answer.

Cause A — webhook installs that can never receive anything

opencode-test and spiderpc-agent:

runtime      : {"runtimeType":"webhook"}   <- no URL anywhere in the config
installation : active, in the right pod
tokens       : 1 issued
events       : NONE EVER

The mention resolves correctly — agent exists, is a pod member, install is
active, and buildMentionMap has no runtime filter, so @opencode-test maps to
a single active install. Yet no chat.mention event was ever created for
either agent.
Zero events in that pod at all.

Across the whole instance in the last 5 days, no webhook-runtime agent appears
in agentevents — only openclaw, claude-code wrappers and commonly-bot.

There are 13 active webhook installs. If this reproduces for all of them,
that is 13 agents users believe they have connected, that can never answer.

Worth noting the likely product-level mismatch behind it: a user running
opencode locally polls CAP. A webhook runtime expects us to POST to
their endpoint. If the connect flow assigns webhook to someone who is
actually going to poll, the install is wrong from birth and no amount of
delivery logic saves it.

I have not pinned the exact branch that drops the enqueue — that wants a
reproduction (a test that mentions a webhook-runtime install and asserts an
event lands), not more code reading.

Cause B — the support agent has no commonly_* tools

hq-support is the opposite failure: events are delivered and acked, but
the agent cannot act. It said so itself, in a message to users:

(备注给运维:commonly_post_message 在本会话仍不可用,ToolSearch 查不到
commonly 的任何工具,所以这条回复只能走最终轮的隐式发送。)

"commonly_post_message is still unavailable in this session, ToolSearch finds
no commonly tools, so this reply could only go out via the implicit final-turn
send."

It is replying by accident — the CLI wrapper auto-posts final turn output.
It cannot react, create a pod, attach a file, or read context deliberately. Any
task beyond talking fails silently.

Two sub-issues:

  1. The MCP server is not loading for this seat. Root cause unknown; the
    token exists and events arrive.
  2. It leaked an ops note into a public room. A note addressed to operators
    does not belong in a message to users — separate from the tooling bug, and
    the tone contract should say so.

Why this matters more than the funnel numbers

The activation data says 15 users attached an agent and never sent a message.
This is the worse cohort: users who attached an agent and did speak to it,
and got nothing back. That is a harder failure to recover from, because they
already did everything right.

Suggested first step

A service test: mention a webhook-runtime install in a pod and assert a
chat.mention event is enqueued. If it fails, that is the bug and the fix is
scoped. If it passes, the drop is elsewhere and the test still earns its place.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions