Troubleshooting

Atlas QuestionRejectedError: The user dismissed this question

Updated 7 min read

Atlas raises QuestionRejectedError with the message The user dismissed this question because Question.ask parks on a Deferred until you answer, and dismissing the prompt fails that Deferred with RejectedError, so the fix is simply to answer the question instead of dismissing it when you want the tool to proceed. QuestionRejectedError is a record of your decision, not a crash: the Atlas TUI treats it as a user decision, so no further action is needed and nothing is broken. The plan_exit tool uses the same mechanism, where answering No raises Question.RejectedError and keeps you in plan mode, which is the supported way to stay in planning. Re-issue the request whenever you are ready to answer.

Why does Atlas say the user dismissed this question

Atlas says The user dismissed this question because Question.ask parks on a Deferred until you answer, and dismissing the prompt fails that Deferred with RejectedError. The RejectedError message is exactly that 1 sentence, so the text you are reading is a literal record of the dismissal, not a fault.

The mechanism is worth understanding once. When an Atlas tool needs input from you, Question.ask suspends the tool on a Deferred and waits. Answering settles the Deferred and the tool continues. Dismissing fails the Deferred with RejectedError, and the tool call surfaces as QuestionRejectedError with the message The user dismissed this question. There is no timeout involved, no network failure, and no misconfiguration. The only input to the outcome was your own response at the prompt. Reading QuestionRejectedError as an error in the usual sense is the mistake most people make here, and it sends them looking for a bug that does not exist.

Is QuestionRejectedError a bug in Atlas

QuestionRejectedError is not a bug in Atlas. The Atlas TUI treats it as a user decision rather than a crash, so 0 further actions are needed after you see it. The session continues normally, nothing is corrupted, and there is no state to reset or clean up.

Developers see the word Error in a transcript and reasonably assume something failed. In this case, what failed is exactly one thing: the tool call that was waiting on your answer. That is the correct and intended consequence of dismissing a question, because a tool that asked whether to proceed cannot proceed once you decline to say. Atlas surfaces the outcome honestly rather than silently pretending you approved something. Do not restart the session, do not clear state, and do not go hunting through your config. Simply re-issue the request when you are ready to answer it.

Why plan_exit raises QuestionRejectedError when you answer No

The Atlas plan_exit tool raises Question.RejectedError when you answer No, and that behavior is deliberate. plan_exit asks whether to switch to the build agent and start implementing, and No is 1 of the 2 supported answers, the one that keeps you in plan mode. The error is expected, not a fault.

plan_exit is the clearest example of the pattern in Atlas, because Atlas drafts a plan in a read-only plan agent and asks before switching to a build agent. That question is the switch, and declining it is a legitimate answer. If you decline, the plan agent stays active, plan mode keeps denying edits, and the QuestionRejectedError in your transcript is the receipt for the decision you made. Nothing about the plan is lost. Keep refining, and run plan_exit again when the plan is genuinely ready. Answer Yes at that point and the build agent takes over.

How to answer an Atlas question so the tool proceeds

To make an Atlas tool proceed past a question, answer it rather than dismissing it. Question.ask keeps the tool parked on 1 Deferred until an answer settles it, so any answer at all resumes the tool, while a dismissal fails the Deferred and produces QuestionRejectedError instead.

The practical advice is unglamorous and it works: read the prompt before responding. Accidental dismissals happen when a question appears mid-flow during a long session and gets waved away by reflex, and every such dismissal costs you the tool call that was waiting on it. Atlas asks questions at exactly the moments that warrant a human, such as whether to leave the read-only plan agent for the build agent. Those are decisions worth two seconds of attention. If a tool call failed because you dismissed its question and you actually wanted it to run, simply re-issue the request. The tool will ask again.

How to verify nothing is broken after QuestionRejectedError

Verify by re-issuing the request that failed, which is step 4 of the documented fix. Because the Atlas TUI treats QuestionRejectedError as a user decision rather than a crash, the tool asks its question again on the next attempt, and answering it lets the tool proceed. No session restart is required.

The confirmation loop is short. Re-issue the request, watch the question appear, answer it, and the tool runs. If the question does not reappear, check whether the request was actually re-issued rather than assuming a deeper problem, because Question.ask only prompts when a tool needs input. For plan_exit specifically, the verification is even more direct: run plan_exit again, answer Yes, and edits stop being denied because the build agent is now active with the default permissions merged in. A QuestionRejectedError left in the transcript from an earlier decline has no lingering effect on any of this.

How to fix it

  1. 01Answer the question instead of dismissing it, if you want the tool to proceed. Question.ask resumes only once the Deferred is settled with an answer.
  2. 02For plan_exit, recognize that answering No is the supported way to stay in plan mode, so the resulting QuestionRejectedError is expected and not a bug.
  3. 03Take no cleanup action. The Atlas TUI treats QuestionRejectedError as a user decision, not a crash, so the session stays healthy.
  4. 04Re-issue the request when you are ready to answer, and the tool will ask again.
  5. 05If a question is being dismissed by accident, slow down at the prompt and read what the tool is actually asking before responding.

Frequently asked questions

what does The user dismissed this question mean in Atlas
The message means you dismissed a prompt that an Atlas tool was waiting on. Question.ask parks the tool on a Deferred until you answer, and dismissing fails the Deferred with RejectedError, whose message is exactly that sentence.
is QuestionRejectedError an Atlas bug
No. The Atlas TUI treats QuestionRejectedError as a user decision, not a crash, so no further action is needed. The tool call that was waiting on your answer failed, which is the correct consequence of dismissing its question.
how do I fix QuestionRejectedError in Atlas
Answer the question instead of dismissing it. Re-issue the request when you are ready to answer, and the tool will ask again. There is no config change, no restart, and no cleanup involved.
why does plan_exit throw QuestionRejectedError when I say No
plan_exit asks whether to switch to the build agent and start implementing. Answering No raises Question.RejectedError and keeps you in plan mode, which is the supported way to stay in planning. The error is expected, not a fault.
do I need to restart my Atlas session after dismissing a question
No. Nothing is corrupted and no state needs resetting. The Atlas TUI treats QuestionRejectedError as a user decision, so simply re-issue the request whenever you are ready to answer the question.
what happens to the tool call when I dismiss an Atlas question
The tool call fails with QuestionRejectedError and does not run. Question.ask suspends the tool on a Deferred, and a dismissal fails that Deferred rather than settling it with an answer, so the tool never resumes.
can I answer an Atlas question after dismissing it
Not for the failed call itself, because dismissing already failed its Deferred. Re-issue the request and the tool asks the question again, at which point answering it lets the tool proceed normally.

Try Atlas in your terminal

The terminal-native AI coding agent. Free core, single binary.

Install Atlas

Related guides

Atlas vs Pieces for Developers: AI Tools for Developers in 2026

Comparing Atlas, a terminal-native AI coding agent, with Pieces for Developers, an OS-level memory layer, for developers in 2026. Evaluate code generation, safety, and context management.

Atlas with Qwen3 30B-A3B (Ollama): the MoE throughput trade in 2026

Qwen3 30B-A3B (Ollama) in Atlas: 30B total parameters, roughly 3B active per token, 19GB of weights, 256K tokens (262,144) of context, Free (self-hosted).

Atlas with NVIDIA NIM: Free-Tier Open Weights and the Nemotron Home Turf in 2026

Run Atlas on NVIDIA NIM: most endpoints listed at $0/$0 per Mtok, Nemotron 3 Ultra 550B at 1,000,000 tokens for $0.50/$2.50. Setup, rate limits, and catalog noise.

Atlas for Nuxt: Auto-Imports, useAsyncData, and Nitro Handlers in 2026

Atlas is a terminal-native AI coding agent for Nuxt in 2026. It reads nuxt.config.ts, pages/ routes, composables/ auto-imports, and server/api/ Nitro handlers, and tests with @nuxt/test-utils.

Atlas for Angular in 2026

Adopt Atlas, the terminal-native AI coding agent, for your Angular projects in 2026. Enhance development with intelligent code search, secure local embeddings, and granular control over AI actions.

Atlas with Kimi K2 Thinking Turbo: The 2026 Reasoning Speed Tier

Kimi K2 Thinking Turbo gives Atlas priority serving on a reasoning model at $1.15 per Mtok input and $8.00 per Mtok output, on a 256K tokens (262,144) window.

Atlas with GPT-5.1 Codex: Plan First, Then Build in 2026

GPT-5.1 Codex in Atlas: a frontier model from OpenAI at $1.25 per Mtok input, $10 per Mtok output, built to execute an approved plan across a long tool chain.

Atlas with Gemini Flash-Lite Latest: A Set-and-Forget small_model for 2026

gemini-flash-lite-latest in Atlas: a rolling alias for Google's cheapest reasoning-capable Lite tier at $0.1 per Mtok input and a 1,048,576 token context.

Browse this resource hub