Skip to content

OpenCode native question tool hangs under bb: no UI, turn stalls, stop reports a fake "user dismissed" #4530

Description

@lukelabonte

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

  1. bb 0.44.0 desktop, acp-opencode provider, OpenCode v2.0.18.
  2. In any OpenCode thread, get the agent to call its native question tool.
  3. Nothing appears in the UI. The turn hangs.
  4. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ask-user-questionBuilt-in plugin: ask-user-questionpartial-reproBug partially reproduced; some claims unverified; see linked reportprovider-acpBuilt-in plugin: provider-acpprovidersCross-provider bridges, models, login

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions