AskUserQuestion silently auto-answers (picks option 1) in acceptEdits mode — still broken in v2.1.167 after #29618 closed NOT_PLANNED
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
- Start Claude Code in
acceptEditsmode (Shift+Tab, orpermissions.defaultMode: "acceptEdits"in settings.json). - Trigger any flow that calls
AskUserQuestion. - 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_answersentinel 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
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗