Oversized GIF in saved message queue causes startup crash loop
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 80/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust
- Domain
- desktop-dev
Research direction
First, locate the code in the Codex desktop app that loads the global state file ~/.codex/.codex-global-state.json on startup and processes the queued-followups entries. Add size validation for attachment payloads when loading existing saved entries and when persisting new queued messages, and implement recovery that preserves the message text while discarding oversized attachments. Run the app's startup and state-loading test suite to confirm the crash is resolved and oversized entries are handled gracefully.
Written by the indexing model from the issue text.
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.930.21537 and 26.1002.52244
What subscription do you have?
Pro
What platform is your computer?
- macOS 27.0.1
- Apple Silicon, 16 GB RAM
- App versions: 26.930.21537 and 26.1002.52244
- Crashes observed: October 5–7, 2026, Pacific time
What issue are you seeing?
The Codex/ChatGPT desktop app repeatedly crashed within seconds of launch.
Eight crash reports showed a consistent main-process failure. A crash dump explicitly reported “process out of memory.”
Investigation found that ~/.codex/.codex-global-state.json was approximately 360 MB. One entry under queued-follow-ups contained a GIF attachment stored as an approximately 357 MB data URL.
Steps to reproduce
The original attachment and queuing sequence has not been reproduced in a clean environment. The observed failure occurred when opening the app with the oversized GIF already persisted in the queue.
Environment
- macOS 27.0.1
- Apple Silicon, 16 GB RAM
- App versions: 26.930.21537 and 26.1002.52244
- Crashes observed: October 5–7, 2026, Pacific time
What steps can reproduce the bug?
The original attachment and queuing sequence has not been reproduced in a clean environment. The observed failure occurred when opening the app with the oversized GIF already persisted in the queue.
What is the expected behavior?
An oversized attachment should be rejected with a clear message. If it is already saved in the queue, the app should open successfully and allow the user to remove or replace it.
Additional information
Recovery and evidence
After backing up the saved state and removing only that GIF attachment, the state shrank to approximately 2.9 MB. The app opened successfully and remained running. The queued message text was preserved.
This strongly suggests the saved attachment triggered memory exhaustion during startup. The exact allocation path was not established.
Suggested improvements
- Validate attachment size before reading or encoding.
- Persist attachment references instead of inline payloads.
- Recover safely from oversized saved queue entries while preserving message text.
- Dominant language
- Rust
- Stars
- 130k
- Forks
- 20.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 997
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
bug CLI config mcp
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
app bug context windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
CLI config enhancement mcp
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
openai/codex#55786 · 1 reaction ·
Maintainers usually reply within 1 day
-
bug CLI TUI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
app bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
Similar issues
-
bug cli p3
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Telegram and Twitch adapters panic when splitting long messages with multibyte charactersPossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
spacedriveapp/spacebot#661 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
project-robius/robrix#1177 ·
Maintainers usually reply within 1 day