AskUserQuestion silently auto-answers (picks option 1) in acceptEdits mode — still broken in v2.1.167 after #29618 closed NOT_PLANNED

Resolved 💬 2 comments Opened Jun 7, 2026 by sstraus Closed Jul 14, 2026

Summary

AskUserQuestion resolves itself without any human input when the session is in acceptEdits permission mode. The interactive picker never renders; the tool returns an empty answer and the model proceeds as if the first option was selected. The transcript shows answered Claude's questions: followed by an answer the user never gave.

This is the same defect reported in #29618, which was closed as NOT_PLANNED. It is still present in the latest version. Related: #29733 / #29774 (closed COMPLETED, but the behavior persists), #50728 (no-TTY, closed NOT_PLANNED).

Why this is a correctness bug, not a permissions feature

AskUserQuestion is a requirements-gathering tool, not a permission prompt. Auto-resolving it under acceptEdits / bypassPermissions conflates two categorically different things:

  • "auto-approve side effects" (legitimate for these modes)
  • "fabricate the user's intent" (never legitimate)

A tool whose entire purpose is to collect a human decision should never silently default that decision to option 1.

Repro

  1. Start Claude Code in acceptEdits mode (Shift+Tab, or permissions.defaultMode: "acceptEdits" in settings.json).
  2. Trigger any flow that calls AskUserQuestion.
  3. Observe: no picker is shown; the tool resolves almost instantly; the transcript reads answered Claude's questions: with an answer the user never selected (consistently the first option).

Expected

In any mode where an interactive picker cannot be presented (acceptEdits, bypassPermissions, no-TTY), AskUserQuestion should either:

  • (a) still block and wait for real user input, or
  • (b) return an explicit no_answer sentinel that the model is instructed NOT to interpret as a selection.

It should never silently default to the first option.

Suggested fix

Decouple AskUserQuestion resolution from permission mode. Permission auto-approval and user-input gathering are separate concerns and should not share the auto-resolve path.

Environment

  • Claude Code: 2.1.167
  • OS: macOS 26.5.1
  • Permission mode: acceptEdits

View original on GitHub ↗

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