Add configurable timeout (or option to disable) for AskUserQuestion tool

Resolved 💬 3 comments Opened Mar 4, 2026 by gabrielrosariolawn Closed May 2, 2026

Feature Request

Problem

When Claude uses the AskUserQuestion tool to present interactive options to the user, there appears to be a built-in timeout after which the tool returns a response — even if the user hasn't made a selection yet. The returned response is often empty or incomplete (e.g., just "User has answered your questions:" with no actual selections).

This creates a real problem: if the agent doesn't explicitly guard against empty responses, it may proceed with default assumptions, potentially taking unwanted actions. In one case, this led to 160 items being auto-processed without user consent because the agent treated the timed-out empty response as a valid selection.

Current Behavior

  • AskUserQuestion presents options in the terminal
  • After some time without user input, the tool returns an empty/incomplete response
  • There is no way to configure or disable this timeout
  • The agent cannot distinguish between "user intentionally chose nothing" and "user didn't respond in time"

Requested Behavior

One or more of:

  1. Configurable timeout — Allow users to set a custom timeout duration (e.g., via ~/.claude/settings.json or project .claude/settings.json)
  2. Option to disable timeout entirely — Let the prompt wait indefinitely until the user responds
  3. Distinct return value for timeout vs. empty selection — So agents can programmatically detect a timeout and re-prompt rather than guessing

Suggested Configuration

{
  "askUserQuestion": {
    "timeout": 120
  }
}

Or "timeout": 0 / "timeout": null to disable.

Impact

This affects any workflow where Claude presents multi-option questions that require the user to read, think, and decide — especially when reviewing lists of items, selecting from multiple approaches, or confirming batch operations.

Environment

  • Claude Code CLI
  • macOS / Terminal

View original on GitHub ↗

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