[macOS] Bundled plugin reconciliation causes 30-40s startup delay due to content variant mismatch

Resolved 💬 1 comment Opened Jul 30, 2026 by adamwangxx Closed Jul 30, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

[macOS] Bundled plugin reconciliation causes 30-40s startup delay due to content variant mismatch

Summary

The Codex desktop app on macOS experiences a 30-40 second delay on every launch before the Projects sidebar becomes usable. Investigation reveals that browser and chrome bundled plugins are repeatedly classified as outdated and reinstalled on each startup, despite having the correct version number. This occurs because the reconciliation logic compares the transformed unified content variant in the cache against the untransformed source files in the application bundle.

Environment

  • App: ChatGPT/Codex desktop 26.721.81911 (build 5973)
  • Platform: macOS 25.5.0 (Darwin Kernel Version 25.5.0), Apple Silicon (arm64)
  • Plugins affected: browser@openai-bundled, chrome@openai-bundled

Reproduction

  1. Quit Codex completely
  2. Launch /Applications/ChatGPT.app normally
  3. Observe the left sidebar remains in "Loading chats" state
  4. Projects sidebar becomes usable only after ~30-40 seconds

Consistent reproduction: This happens on every clean launch, not just after updates.

Root Cause

Content Variant Mismatch

The installed plugin cache contains manifests with an added bundledContentVariant field:

Cached manifest (~/.codex/plugins/cache/openai-bundled/browser/26.721.81911/.codex-plugin/plugin.json):

{
  "name": "browser",
  "version": "26.721.81911",
  ...
  "bundledContentVariant": "unified"
}

Source manifest in application bundle (/Applications/ChatGPT.app/Contents/Resources/plugins/openai-bundled/plugins/browser/.codex-plugin/plugin.json):

{
  "name": "browser",
  "version": "26.721.81911",
  ...
  // No bundledContentVariant field
}

Why This Causes Repeated Installation

  1. On installation, the plugin is transformed to the unified content variant
  2. The manifest is updated with "bundledContentVariant": "unified"
  3. Skill files are rewritten to unified content
  4. On next startup, the reconciliation logic compares:
  • Cache: transformed manifest + unified skills
  • Bundle: untransformed manifest + original skills
  1. Same version (26.721.81911) but different content → classified as outdated
  2. Plugin is reinstalled, and the cycle repeats

Evidence

File Comparison

# Cached manifest (has bundledContentVariant)
$ cat ~/.codex/plugins/cache/openai-bundled/browser/26.721.81911/.codex-plugin/plugin.json | tail -5
    "screenshots": []
  },
  "bundledContentVariant": "unified"
}

# Source manifest (no bundledContentVariant)
$ cat /Applications/ChatGPT.app/Contents/Resources/plugins/openai-bundled/plugins/browser/.codex-plugin/plugin.json | tail -5
    "screenshots": []
  }
}

The chrome plugin exhibits the same pattern.

Startup Trace Pattern

From sanitized startup logs (reproduced from original bug report):

window ready-to-show startupElapsedMs=1165
thread/list durationMs=31
bundled_plugins_reconcile_started reason=startup
bundled_plugin_install_requested pluginName=browser reason=outdated
bundled_plugin_install_requested pluginName=chrome reason=outdated
plugin/list durationMs=2484 queueWaitMs=1051
bundled_plugins_reconcile_started queued=true reason=startup
plugin/list durationMs=2319 queueWaitMs=1250
plugin/list durationMs=2343 queueWaitMs=1437
bundled_plugin_install_requested pluginName=browser reason=outdated
bundled_plugin_install_requested pluginName=chrome reason=outdated
plugin/list durationMs=7135 queueWaitMs=0
thread/list durationMs=16

The sidebar populates immediately after the second reconciliation completes, indicating that plugin reconciliation blocks the initial UI render.

Attempted Workarounds

❌ Clearing Plugin Cache

rm -rf ~/.codex/plugins/cache/openai-bundled/browser
rm -rf ~/.codex/plugins/cache/openai-bundled/chrome

Result: Ineffective. Plugins are reinstalled with unified variant on next launch, recreating the same mismatch.

✅ Disabling Plugins (Issue #23277 approach)

[features]
apps = false
plugins = false

Result: Eliminates the startup delay but disables all plugin functionality. Not a viable long-term solution.

Expected Behavior

  1. Bundled plugin reconciliation should be variant-aware: compare the materialization key/content variant against the installed cache, not raw bundle files
  2. A plugin with the correct version and current content variant should not be reinstalled
  3. Plugin reconciliation should not block the initial Projects/thread list render
  4. Deduplication: the two consecutive reconciliation passes should be consolidated

Suggested Fix

  1. Make bundled-plugin freshness comparison variant-aware:
  • Compare the post-transformation content (unified) against the cache
  • OR store and compare the intended content variant key
  1. Do not classify a plugin as outdated solely because the cached unified manifest/skills differ from raw bundled source when version and variant are current
  2. Decouple the initial thread/list/Projects sidebar render from bundled-plugin reconciliation
  3. Deduplicate the two startup reconciliation passes

Related Issues

  • Issue #23277: Similar plugin initialization delay (18-20s app/list time) in Windows/WSL environment

Additional Context

Secondary Performance Issue

During investigation, a secondary bottleneck was discovered: large session history also impacts UI responsiveness.

  • Active sessions: 2 sessions, 103MB
  • Archived sessions: 277 sessions, 184MB
  • Total: 279 sessions, 287MB

While this contributes to slow session list rendering within Projects, it is a separate issue from the plugin reconciliation startup delay.

Desktop vs CLI

This issue is specific to the Codex desktop app. The CLI does not exhibit this startup delay because it does not perform the same bundled plugin reconciliation on every launch.

---

Impact: Every user with Codex desktop 26.721.81911 experiences this 30-40 second startup delay, significantly degrading the launch experience and initial productivity.

View original on GitHub ↗

1 Comment

github-actions[bot] contributor · 29 days ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #35268

Powered by Codex Action