OpenCode's native question tool hangs under bb. No question UI ever renders, the turn sits there until you stop it, and stopping produces a misleading {"metadata":{},"error":"The user dismissed this question"}. Nobody dismissed anything.
Repro
- bb 0.44.0 desktop, acp-opencode provider, OpenCode v2.0.18.
- In any OpenCode thread, get the agent to call its native
question tool.
- Nothing appears in the UI. The turn hangs.
- Stop the thread. The tool result comes back as "The user dismissed this question".
Verified from the CLI side too: while the question is pending, bb thread interactions list for the thread is empty and nothing shows up in server-stdio.log or host-daemon-stdio.log. The question never becomes a bb interaction at all.
Root cause
bb drives OpenCode over ACP. OpenCode's question tool publishes question.asked inside the OpenCode server, and over ACP that only reaches the client if the client implements OpenCode's question bridging (anomalyco/opencode#17920, #13752, fix landed as anomalyco/opencode#33482 via an ACP extMethod). bb's ACP bridge doesn't handle it, so the prompt goes nowhere.
The trap is that OpenCode still exposes the native question tool in ACP sessions, so every bb OpenCode thread has two question tools:
AskUserQuestion from the builtin ask-user-question plugin (via the bb-bridge MCP server) — works. Verified end to end: card renders, answer comes back.
- native
question — hangs invisibly.
Models pick the native one all the time, especially since agent instructions tend to say "use the question tool". bb's provider-acp correctly declares supportsNativeUserQuestion: false, so the plugin does advertise its tool. The problem is the broken native one is still right there next to it.
Related: #3849 (same missing elicitation/extMethod handling on the ACP client, but that one is OMP withholding its ask tool. OpenCode has the opposite failure mode: it exposes the tool and the prompt dead-ends).
Workaround
Tell agents to use AskUserQuestion instead of question, or disable the native tool in OpenCode config:
{ "tools": { "question": false } }
Possible fixes
- Handle OpenCode's question extMethod in the ACP bridge and route it to the existing question UI, or
- Suppress/disable OpenCode's native question tool for bb-driven sessions so only the plugin's
AskUserQuestion remains.
OpenCode's native
questiontool hangs under bb. No question UI ever renders, the turn sits there until you stop it, and stopping produces a misleading{"metadata":{},"error":"The user dismissed this question"}. Nobody dismissed anything.Repro
questiontool.Verified from the CLI side too: while the question is pending,
bb thread interactions listfor the thread is empty and nothing shows up in server-stdio.log or host-daemon-stdio.log. The question never becomes a bb interaction at all.Root cause
bb drives OpenCode over ACP. OpenCode's question tool publishes
question.askedinside the OpenCode server, and over ACP that only reaches the client if the client implements OpenCode's question bridging (anomalyco/opencode#17920, #13752, fix landed as anomalyco/opencode#33482 via an ACP extMethod). bb's ACP bridge doesn't handle it, so the prompt goes nowhere.The trap is that OpenCode still exposes the native
questiontool in ACP sessions, so every bb OpenCode thread has two question tools:AskUserQuestionfrom the builtin ask-user-question plugin (via the bb-bridge MCP server) — works. Verified end to end: card renders, answer comes back.question— hangs invisibly.Models pick the native one all the time, especially since agent instructions tend to say "use the question tool". bb's provider-acp correctly declares
supportsNativeUserQuestion: false, so the plugin does advertise its tool. The problem is the broken native one is still right there next to it.Related: #3849 (same missing elicitation/extMethod handling on the ACP client, but that one is OMP withholding its ask tool. OpenCode has the opposite failure mode: it exposes the tool and the prompt dead-ends).
Workaround
Tell agents to use
AskUserQuestioninstead ofquestion, or disable the native tool in OpenCode config:{ "tools": { "question": false } }Possible fixes
AskUserQuestionremains.