Skip to content

[Bug]: claude-cli backend: AskUserQuestion tool call renders input but no picker UI / never returns a result #81099

Description

@cuuush

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

In a claude-cli-backed session inside the openclaw Control UI, the assistant's AskUserQuestion tool call is accepted and the tool input JSON is rendered, but no interactive picker is shown and no tool result is ever returned to the assistant — the turn stalls.

Steps to reproduce

  1. Start a claude-cli-backed session in the openclaw Control UI on 2026.5.7.
  2. Have the assistant call the AskUserQuestion tool with a valid payload. Live-captured example from this session:
    {
      "questions": [
        {
          "question": "How do you want to watch these issues?",
          "header": "Watch style",
          "multiSelect": false,
          "options": [
            { "label": "Scheduled daily digest", "description": "Cron job runs once a day, summarizes only on activity." },
            { "label": "GitHub subscribe + notify", "description": "Subscribe my GitHub account to each issue via API." },
            { "label": "Hourly polling with push", "description": "Poll every hour and push a notification on movement." },
            { "label": "Just save the list, no watch", "description": "Write the issue numbers and stop." }
          ]
        }
      ]
    }
  3. Observe the Control UI shows the tool call header with this input payload, no picker affordance, and no output block. The assistant cannot proceed.

Expected behavior

The Control UI renders an inline option picker (single- or multi-select per multiSelect) for each questions[i], captures the user's selection(s), and returns the structured selections as the AskUserQuestion tool result so the assistant turn completes. This matches how the tool behaves in Claude Code's first-party surfaces (terminal CLI, Desktop, IDE extensions).

Actual behavior

Tool call appears in the conversation as a tool call. The input JSON is displayed verbatim. No output is rendered, no UI control appears, the user has no way to answer the question. The assistant hangs until the user replies in freeform text — which is not the structured selection the tool expects.

OpenClaw version

2026.5.7 (eeef486)

Operating system

macOS 26.3.1 (25D2128)

Install method

npm global (/opt/homebrew/bin/openclaw)

Model

anthropic/claude-opus-4-7

Provider / routing chain

openclaw control-ui -> claude-cli (@anthropic-ai/claude-code 1.0.107) -> anthropic (oauth profile anthropic:claude-cli)

Additional provider/model setup details

  • claude-cli runtime as configured under acp.allowedAgents / Claude CLI plugin path.
  • Auth: auth.profiles.anthropic:claude-cli (oauth), routed via auth.order.anthropic.
  • No custom gateway in front of the model.

Logs, screenshots, and evidence

Tool call (rendered in Control UI):
  name: AskUserQuestion
  input: { "questions": [ { "question": "...", "header": "Watch style", "multiSelect": false, "options": [...] } ] }
  output: <none>

User reproduced live in-session and confirmed: "it shows up in UI as a Tool call with the tool input being: { ... } (and no output)".

Impact and severity

  • Affected: any claude-cli-backed session using the openclaw Control UI (TUI / web). Any assistant turn that chooses to call AskUserQuestion stalls.
  • Severity: Blocks the interactive-decision workflow. Forces the agent into a verbose plaintext fallback for every disambiguation, which loses the structured answer + headers/labels.
  • Frequency: Always — deterministic on every AskUserQuestion call.
  • Consequence: Agents cannot use AskUserQuestion to gather user preferences mid-task. Workaround is for the agent to detect the surface and switch to plaintext, but agents don't know they're inside openclaw Control UI.

Additional information

  • AskUserQuestion is a Claude Code (claude-cli) built-in tool, so the gap is on the Control UI / harness side that needs to render the picker affordance and post the selection back as the tool result.
  • Related (but not a duplicate): Feature: Skill execution support for Human-in-the-Loop interactive prompts (AskUserQuestion) #65681 (closed) requested skill-driven interactive prompts; this issue is about the existing claude-cli built-in tool not being rendered.
  • Workaround currently in use: assistant re-states the question and options in plaintext markdown and the user replies in freeform.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.staleMarked as stale due to inactivity

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions