AskUserQuestion auto-submits without waiting for user input in skill/command context

Resolved 💬 13 comments Opened Feb 28, 2026 by matthewliu Closed Mar 5, 2026

Bug: AskUserQuestion auto-submits without waiting for user input in skill/command context

Environment

  • Claude Code version: 2.1.63
  • OS: macOS (Darwin 25.2.0)
  • Model: Opus 4.6 (Claude Max)
  • Shell: zsh

Summary

AskUserQuestion tool calls auto-submit immediately with empty responses when invoked from within a custom command/skill (via /command-name). The tool works correctly in normal conversation — it renders the interactive UI and blocks for user input. But when the same tool is called inside a command, it returns instantly without displaying the question to the user.

Regression

This was working correctly on 2/27/2026. Broke on 2/28/2026. Same version (2.1.63), same files, same projects.

Reproduction Steps

Working case (normal conversation):

  1. Open Claude Code
  2. Type: "Ask me 3 questions about my favorite food using AskUserQuestion"
  3. Result: Questions render with interactive multi-select UI, Claude waits for input

Broken case (command context):

  1. Create a minimal command file at .claude/commands/test-ask.md:
---
description: Test AskUserQuestion in command context
allowed-tools: AskUserQuestion
---

Ask the user what their favorite color is using AskUserQuestion with options: Red, Blue, Green.

Then output their answer.
  1. Run /test-ask
  2. Expected: Question renders, Claude waits for user to select an option
  3. Actual: "User answered Claude's questions:" appears with empty response, Claude immediately continues without waiting

Evidence from real commands

Multiple custom commands affected — all exhibit the same behavior:

# /plan-feature output (truncated):
⏺ User answered Claude's questions:
  ⎿

⏺ Got it — Medium size, P1 priority, Beta rollout...

⏺ User answered Claude's questions:
  ⎿

⏺ Round 2: Visual Identity & Professionalism

⏺ User answered Claude's questions:
  ⎿

Every AskUserQuestion call returns empty and Claude proceeds as if the user answered. This happens for:

  • Commands with explicit Ask using AskUserQuestion: formatting with structured options
  • Commands with bullet-point questions and a header instruction to use AskUserQuestion
  • Both custom commands and commands from the official plugin system

What I've ruled out

| Hypothesis | Test | Result |
|---|---|---|
| Custom command file regression | Diffed all command files against last-known-working state | No relevant changes to question-asking logic |
| Plugin interference (custom matt-toolkit plugin with Stop/SessionStart hooks) | Disabled plugin, retested | Bug persists with plugin disabled |
| Settings/permissions issue | Reviewed global and project settings.json | No AskUserQuestion-related entries |
| PreToolUse hook interference | Hook only matches Bash tool, only active during autonomous loops | Not relevant |
| Project-specific issue | Reproduced across 3 different projects (claude-toolkit, joyride-website, cyoa) | Bug is global |

Impact

This breaks any command/skill that relies on interactive discovery or user input. For our toolkit, this makes /plan-feature and /research-feature completely unusable — they speed through 8-10 rounds of questions without collecting any user input, then generate specs based on empty answers.

View original on GitHub ↗

This issue has 13 comments on GitHub. Read the full discussion on GitHub ↗