openclaw/openclaw · error

Codex-native /btw side-question mode is unavailable because

Error message

Codex-native /btw side-question mode is unavailable because the effective tool policy restricts Codex native tools for this session.

What it means

Error "Codex-native /btw side-question mode is unavailable because the effective tool policy restricts Codex native tools for this session." thrown in openclaw/openclaw.

Source

Thrown at extensions/codex/src/app-server/side-question.ts:301

    : params;
  const sideRunParams = buildSideRunAttemptParams(effectiveParams, {
    cwd,
    authProfileId,
    runId,
    timeoutMs: appServer.requestTimeoutMs,
  });
  const nativeExecutionBlock = resolveCodexNativeExecutionBlock({
    config: sideRunParams.config,
    sessionKey: sideRunParams.sandboxSessionKey?.trim() || sideRunParams.sessionKey,
    sessionId: sideRunParams.sessionId,
    surface: "/btw side-question mode",
  });
  if (nativeExecutionBlock) {
    throw new Error(nativeExecutionBlock);
  }
  const nativeToolSurfaceEnabled = shouldEnableCodexAppServerNativeToolSurface(sideRunParams);
  if (!nativeToolSurfaceEnabled) {
    throw new Error(
      "Codex-native /btw side-question mode is unavailable because the effective tool policy restricts Codex native tools for this session.",
    );
  }
  const clientOptions = {
    startOptions: appServer.start,
    timeoutMs: appServer.requestTimeoutMs,
    authRequirement: preparedRuntimeAuth.plan.modelRoute?.authRequirement,
    ...(startupPreparedAuth
      ? { preparedAuth: startupPreparedAuth }
      : { authProfileId: connection.clientAuthProfileId }),
    agentDir: params.agentDir,
    config: params.cfg,
    ...(params.opts?.abortSignal ? { abandonSignal: params.opts.abortSignal } : {}),
  } satisfies CodexAppServerClientOptions;
  let client = await getLeasedSharedCodexAppServerClient(clientOptions);
  const clientLease: CodexAppServerClientLease = { client };
  const collector = new CodexSideQuestionCollector(params, () => readRecentCodexRateLimits(client));
  const runAbortController = new AbortController();

View on GitHub (pinned to 01804a7531)

When it happens

Trigger: Thrown at extensions/codex/src/app-server/side-question.ts:301 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/9d47f2d902120869. Report an issue: GitHub.