openclaw/openclaw · error
Codex /btw completed without an answer.
Error message
Codex /btw completed without an answer.
What it means
Error "Codex /btw completed without an answer." thrown in openclaw/openclaw.
Source
Thrown at extensions/codex/src/app-server/side-question.ts:748
let text: string;
try {
text = await collector.wait({
signal: params.opts?.abortSignal,
timeoutMs: Math.max(
appServer.turnCompletionIdleTimeoutMs,
SIDE_QUESTION_COMPLETION_TIMEOUT_MS,
),
});
} catch (error) {
if (error instanceof CodexSideQuestionTimeoutError && !runAbortController.signal.aborted) {
runAbortController.abort(error);
}
throw error;
}
const trimmed = text.trim();
if (!trimmed) {
throw new Error("Codex /btw completed without an answer.");
}
return { text: trimmed };
} finally {
try {
// Cleanup aborts are ownership teardown, not a terminal run outcome.
// Snapshot the real state while late app-server notifications can still drain.
const runWasAbortedBeforeCleanup = runAbortController.signal.aborted;
nativeToolRunWasAbortedBeforeCleanup = runWasAbortedBeforeCleanup;
params.opts?.abortSignal?.removeEventListener("abort", abortFromUpstream);
removeRequestHandler?.();
// Stop dispatched side tools before cleanup waits on the app server;
// otherwise a stuck tool can outlive the side turn that owns it.
if (!runAbortController.signal.aborted) {
runAbortController.abort("codex_side_question_finished");
}
// Request handlers can still be finishing after the terminal turn event.
// Drain their abort races before unsubscribe so late diagnostics cannot leak
// into the next side run.View on GitHub (pinned to 01804a7531)
When it happens
Trigger: Thrown at extensions/codex/src/app-server/side-question.ts:748 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of openclaw/openclaw@01804a7531 (2026-08-12).
Data as JSON: /api/errors/4f76c914ab71dc32.
Report an issue: GitHub.