TL;DR: in a native Codex app-server session, Codex Apps GitHub reads worked, but GitHub write actions failed almost immediately as user rejected MCP tool call even though no approval/input prompt was shown.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
In a native Codex app-server session, Codex Apps GitHub reads worked, but GitHub write actions failed almost immediately as user rejected MCP tool call even though no approval/input prompt was shown.
Steps to reproduce
- Start a native Codex app-server session through OpenClaw using
codex/gpt-5.4.
- Use the built-in GitHub app connector for read-only calls. In the observed session, issue/PR reads succeeded.
- Trigger a GitHub app write action. In the observed session this was
mcp__codex_apps__github._add_issue_labels.
- Observe that the write call fails almost immediately with
user rejected MCP tool call.
- In the same session, run direct
gh write commands. In the observed session, later gh issue edit/comment/close writes succeeded.
Expected behavior
If a Codex app connector needs approval or follow-up input for a write, OpenClaw should surface that interaction through its normal approval/input UX instead of failing immediately.
Actual behavior
GitHub app write calls failed in about 50-200ms with user rejected MCP tool call, and no approval or follow-up input prompt was shown. In the same session, later direct gh writes succeeded.
OpenClaw version
2026.4.15 (041266a)
Operating system
NixOS
Install method
local OpenClaw gateway / native Codex app-server path
Model
codex/gpt-5.4
Provider / routing chain
openclaw -> native codex app-server -> codex/gpt-5.4
Additional provider/model setup details
The affected session was a native Codex app-server session, not the older external openclaw-codex-app-server plugin path.
Logs, screenshots, and evidence
Session log:
~/.codex/sessions/2026/04/18/rollout-2026-04-18T14-53-24-019da295-93df-79b2-ad17-acebdb502561.jsonl
Observed in that log:
- GitHub app write calls
_add_issue_labels: lines 398-408
- Responses
user rejected MCP tool call: lines 410-420
- Retry with same result: lines 424-426
- Later direct
gh write commands: lines 333-345
- Later verification reads confirming those writes: lines 377-378
Relevant local code paths checked during investigation:
extensions/codex/src/app-server/client.ts
extensions/codex/src/app-server/run-attempt.ts
Notable behavior from the native fallback in client.ts:
item/tool/requestUserInput returns empty answers: {}
mcpServer/elicitation/request returns action: "decline"
Impact and severity
Affected: native Codex app-server sessions using Codex Apps connectors, at least the GitHub connector
Severity: medium to high, because connector reads work but connector writes fail
Frequency: observed every time in the affected session for _add_issue_labels
Consequence: Codex Apps GitHub mutations fail even though the session can still read from GitHub and later perform writes through plain gh
Additional information
Related but not the same:
#58161 tracks MCP elicitation support in the embedded Pi MCP client
#68721 changes the default native app-server approval policy to on-request
This report is about the native Codex app-server path specifically. The observed failure looks like a missing approval/input bridge for app-side follow-up prompts, not a GitHub auth failure and not a general write-permission failure.
TL;DR: in a native Codex app-server session, Codex Apps GitHub reads worked, but GitHub write actions failed almost immediately as
user rejected MCP tool calleven though no approval/input prompt was shown.Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
In a native Codex app-server session, Codex Apps GitHub reads worked, but GitHub write actions failed almost immediately as
user rejected MCP tool calleven though no approval/input prompt was shown.Steps to reproduce
codex/gpt-5.4.mcp__codex_apps__github._add_issue_labels.user rejected MCP tool call.ghwrite commands. In the observed session, latergh issue edit/comment/closewrites succeeded.Expected behavior
If a Codex app connector needs approval or follow-up input for a write, OpenClaw should surface that interaction through its normal approval/input UX instead of failing immediately.
Actual behavior
GitHub app write calls failed in about 50-200ms with
user rejected MCP tool call, and no approval or follow-up input prompt was shown. In the same session, later directghwrites succeeded.OpenClaw version
2026.4.15 (041266a)
Operating system
NixOS
Install method
local OpenClaw gateway / native Codex app-server path
Model
codex/gpt-5.4
Provider / routing chain
openclaw -> native codex app-server -> codex/gpt-5.4
Additional provider/model setup details
The affected session was a native Codex app-server session, not the older external
openclaw-codex-app-serverplugin path.Logs, screenshots, and evidence
Session log:
~/.codex/sessions/2026/04/18/rollout-2026-04-18T14-53-24-019da295-93df-79b2-ad17-acebdb502561.jsonlObserved in that log:
_add_issue_labels: lines 398-408user rejected MCP tool call: lines 410-420ghwrite commands: lines 333-345Relevant local code paths checked during investigation:
extensions/codex/src/app-server/client.tsextensions/codex/src/app-server/run-attempt.tsNotable behavior from the native fallback in
client.ts:item/tool/requestUserInputreturns emptyanswers: {}mcpServer/elicitation/requestreturnsaction: "decline"Impact and severity
Affected: native Codex app-server sessions using Codex Apps connectors, at least the GitHub connector
Severity: medium to high, because connector reads work but connector writes fail
Frequency: observed every time in the affected session for
_add_issue_labelsConsequence: Codex Apps GitHub mutations fail even though the session can still read from GitHub and later perform writes through plain
ghAdditional information
Related but not the same:
#58161tracks MCP elicitation support in the embedded Pi MCP client#68721changes the default native app-server approval policy toon-requestThis report is about the native Codex app-server path specifically. The observed failure looks like a missing approval/input bridge for app-side follow-up prompts, not a GitHub auth failure and not a general write-permission failure.