codex - 💡(How to fix) Fix Windows Codex Desktop persists volatile plugin cache hash paths in sessions, causing older threads to lose skills after plugin cache updates

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Codex Desktop on Windows appears to persist absolute SKILL.md paths under volatile plugin cache hash directories into long-lived session context. After the plugin cache updates and the previous hash directory is removed, older or running sessions can fail to load skills, repeatedly report that skills are missing, and reconnect several times before failing.

This does not appear to be user-authored configuration. The affected paths are generated/injected by Codex as part of the available-skills/session context.

Root Cause

The local junction workaround confirms this is path-staleness rather than skill deletion, but it is not a durable product fix because plugin cache hashes can change again on update.

Fix Action

Fix / Workaround

Before the local workaround, old session paths were stale:

The local junction workaround confirms this is path-staleness rather than skill deletion, but it is not a durable product fix because plugin cache hashes can change again on update.

Code Example

C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md

---

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md"
# False

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\9b3c8689\skills\subagent-driven-development\SKILL.md"
# False

---

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\fef63ecf\skills\subagent-driven-development\SKILL.md"
# True

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\fef63ecf\skills\systematic-debugging\SKILL.md"
# True

---

# Examples of non-destructive compatibility junctions created locally:
# superpowers\acdd3141 -> superpowers\fef63ecf
# figma\acdd3141 -> figma\fef63ecf
# browser\26.519.81530 -> browser\26.527.30818

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md"
# True

Get-Content "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md" -TotalCount 3
# ---
# name: subagent-driven-development
# description: Use when executing implementation plans with independent tasks in the current session

---

skill://openai-curated/superpowers/subagent-driven-development

---

{
  "source": "openai-curated",
  "plugin": "superpowers",
  "skill": "subagent-driven-development"
}

---

C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\<hash>\skills\<skill>\SKILL.md
RAW_BUFFERClick to expand / collapse

Summary

Codex Desktop on Windows appears to persist absolute SKILL.md paths under volatile plugin cache hash directories into long-lived session context. After the plugin cache updates and the previous hash directory is removed, older or running sessions can fail to load skills, repeatedly report that skills are missing, and reconnect several times before failing.

This does not appear to be user-authored configuration. The affected paths are generated/injected by Codex as part of the available-skills/session context.

Environment

  • OS: Windows
  • Product: Codex Desktop
  • Plugin family observed: openai-curated/superpowers, openai-curated/figma, and openai-bundled/browser
  • Current observed real Superpowers/Figma cache hash: fef63ecf
  • Previous observed bridge target hash: acdd3141
  • Older session paths observed: 719ed655, 9b3c8689
  • Example failed stream request ID shown by the app: a544bbba-7fb9-4e58-937c-927e0f7a617a

Symptoms

  • Older sessions say skills such as subagent-driven-development cannot be found.
  • Sessions repeatedly show reconnect messages before eventually failing.
  • The skill files still exist under the latest cache hash, but old session paths point to removed hash directories.
  • Recreating compatibility junctions from old hash paths to the current hash immediately restores SKILL.md reads.

Evidence

Representative path from an older session, redacted:

C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md

Before the local workaround, old session paths were stale:

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md"
# False

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\9b3c8689\skills\subagent-driven-development\SKILL.md"
# False

The same skill existed under the current real plugin cache hash:

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\fef63ecf\skills\subagent-driven-development\SKILL.md"
# True

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\fef63ecf\skills\systematic-debugging\SKILL.md"
# True

After creating local compatibility junctions, old paths immediately became readable again:

# Examples of non-destructive compatibility junctions created locally:
# superpowers\acdd3141 -> superpowers\fef63ecf
# figma\acdd3141 -> figma\fef63ecf
# browser\26.519.81530 -> browser\26.527.30818

Test-Path "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md"
# True

Get-Content "C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\719ed655\skills\subagent-driven-development\SKILL.md" -TotalCount 3
# ---
# name: subagent-driven-development
# description: Use when executing implementation plans with independent tasks in the current session

This suggests the underlying skills were not removed. The persisted cache-hash path became stale.

Expected behavior

Durable session state should persist stable skill references, not absolute paths under volatile plugin cache hashes.

For example, session state could store a semantic reference such as:

skill://openai-curated/superpowers/subagent-driven-development

or structured data such as:

{
  "source": "openai-curated",
  "plugin": "superpowers",
  "skill": "subagent-driven-development"
}

On resume or turn start, Codex should resolve that reference through the current plugin registry.

Actual behavior

Older sessions appear to retain paths like:

C:\Users\<redacted>\.codex\plugins\cache\openai-curated\superpowers\<hash>\skills\<skill>\SKILL.md

When <hash> changes and the old cache directory is removed, session skill loading breaks even though the skill exists under the current cache hash.

Suggested fix

  • Do not serialize plugin cache hash paths into session/system context.
  • Store stable semantic skill references instead.
  • Regenerate the available-skills list from the current plugin registry when resuming a thread.
  • Add a persistence guard that rejects or rewrites paths matching .codex\plugins\cache\...\<hash>\skills\... before they enter durable session state.
  • Optionally maintain a stable per-plugin current pointer as a compatibility layer for file-path consumers.

Additional notes

The local junction workaround confirms this is path-staleness rather than skill deletion, but it is not a durable product fix because plugin cache hashes can change again on update.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

Durable session state should persist stable skill references, not absolute paths under volatile plugin cache hashes.

For example, session state could store a semantic reference such as:

skill://openai-curated/superpowers/subagent-driven-development

or structured data such as:

{
  "source": "openai-curated",
  "plugin": "superpowers",
  "skill": "subagent-driven-development"
}

On resume or turn start, Codex should resolve that reference through the current plugin registry.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

codex - 💡(How to fix) Fix Windows Codex Desktop persists volatile plugin cache hash paths in sessions, causing older threads to lose skills after plugin cache updates