Codex App ignores supplied Gmail skill root and invents stale openai-bundled path
What version of the Codex App are you using (From “About Codex” dialog)?
26.715.61943 (build 5628)
The session metadata reports the embedded Codex version as 0.145.0-alpha.27.
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
What issue are you seeing?
In a brand-new Codex App task, the agent was given the correct installed Gmail skill path in its developer-provided skill catalog:
r11 = $HOME/.codex/plugins/cache/openai-curated-remote/gmail/0.1.5/skills
gmail:gmail -> r11/gmail/SKILL.md
The agent was also explicitly required to read the complete SKILL.md before taking task actions.
Instead, it invented/used a different marketplace root and tried to read:
$HOME/.codex/plugins/cache/openai-bundled/gmail/0.1.5/skills/gmail/SKILL.md
That path did not exist, so the shell returned:
sed: .../openai-bundled/gmail/0.1.5/skills/gmail/SKILL.md: No such file or directory
The agent then made an unsupported claim to the user:
The path to the installed version of the Gmail plugin has changed, so I am first locating the current policy file.
No installation or path change had occurred. The correct path had been supplied at session start and the file existed throughout the task.
The agent searched the same incorrect openai-bundled/gmail parent once more, received another No such file or directory, then proceeded to use Gmail tools without ever reading the required Gmail skill.
This appears to combine three failures:
- Ignoring the exact skill root supplied in the current developer context.
- Substituting a stale or hallucinated marketplace root.
- Presenting the resulting
ENOENTas evidence of an installation change, then bypassing the mandatory skill read.
No email contents or personal data are included in this report.
What steps can reproduce the bug?
- Use the Codex App with the Gmail plugin supplied through the
openai-curated-remotecatalog. - Start a new task that triggers
gmail:gmail. - Confirm that the developer skill catalog contains:
``text``
r11 = $HOME/.codex/plugins/cache/openai-curated-remote/gmail/0.1.5/skills
gmail:gmail -> r11/gmail/SKILL.md
- Ask the agent to perform a task requiring Gmail.
- Observe whether it reads the supplied
r11/gmail/SKILL.mdpath or substitutes:
``text``
$HOME/.codex/plugins/cache/openai-bundled/gmail/0.1.5/skills/gmail/SKILL.md
- After the incorrect path returns
ENOENT, observe whether the agent falsely explains this as a plugin update/path change and continues without loading the skill.
Session ID:
019f83f7-235b-7411-b247-157de5e997fd
Turn ID:
019f83f7-5abd-7a61-8e50-f56bfa4c802f
Model: gpt-5.6-sol, reasoning effort medium.
At the nearby token-count event, the model context window was 258,400 tokens and the last turn used approximately 72,544 tokens, so this did not occur near context exhaustion.
What is the expected behavior?
The agent should resolve r11 exactly as supplied and read:
$HOME/.codex/plugins/cache/openai-curated-remote/gmail/0.1.5/skills/gmail/SKILL.md
If a skill read unexpectedly returns ENOENT, it should re-check the current developer-provided skill catalog before inferring that an installation changed. It should not proceed with skill-owned actions until the required skill instructions have been loaded, unless it clearly reports that the skill is unavailable and uses an allowed fallback.
Additional information
The correct file was verified to exist after the task:
$HOME/.codex/plugins/cache/openai-curated-remote/gmail/0.1.5/skills/gmail/SKILL.md
This was a newly created task, not a resumed task that retained an old plugin path. Searches for existing issues using openai-bundled, openai-curated-remote, Gmail, wrong SKILL.md paths, and ignored skill roots did not find a matching report.
1 Comment
I can reproduce the same failure with a non-plugin skill on Windows, so this appears to affect the general skill catalog path handling, not only Gmail/plugin skills.
The session-provided catalog included:
The agent interpreted
r1as a literal directory component and attempted to read:PowerShell returned:
The correct path was:
The same session also exposed the equivalent ambiguity for system skills:
The agent initially tried:
instead of:
This suggests that model-visible aliases such as
r1andr2are being treated as path segments rather than as references that must be resolved through the supplied root map.The catalog-provided skill file should be authoritative. Possible fixes:
file:path exists before adding it to the session catalog;This is the same class of failure described in this issue, but reproduced with user and system skills rather than a marketplace plugin.