Inline visualizations disappear after backend restart when source is under `/mnt/.codex`
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.911.61220 (ChatGPT app), 0.153.4 (app-server)
What subscription do you have?
Enterprise
What platform is your computer?
Mac (Darwin 25.6.0 arm64 arm) local / RHEL 8 remote
What issue are you seeing?
Inline visualizations created during a remote Codex session disappear after restarting the remote Codex backend.
The visualization renders successfully before the restart, but the source fragment is lost when the remote execution runtime is recreated.
What steps can reproduce the bug?
-
Start a remote Codex session.
-
Create an inline visualization under:
/mnt/.codex/visualizations/YYYY/MM/DD/<thread-id>/example.html -
Confirm that the visualization renders.
-
Restart the remote Codex backend or recreate its container.
-
Reopen or rehydrate the same task.
What is the expected behavior?
Expected behavior
Visualization source files referenced by a completed remote Codex session should remain available after an app-server or backend restart, or the task should preserve enough information to reconstruct the visualization.
If the source cannot be recovered, the UI should show an actionable missing-file error.
Actual behavior
The visualization renders before the remote backend restart, but the source file disappears afterward.
The inline content reference remains in the conversation, but the renderer can no longer resolve the referenced file.
Additional information
Diagnostic evidence
-
Before the restart, the fragment existed at
/mnt/.codex/visualizations/.../random-scatter-plot.html. -
The fragment was 5,988 bytes and rendered successfully.
-
After the restart, a new remote app-server instance was running.
-
The visualization file was missing, while its parent directory remained empty.
-
/mnt/.codexis a separate privatetmpfsfilesystem, distinct from the persistent workspace. -
The app-server log also contained:
Error: app-server control socket is already in use at /mnt/.codex/app-server-control/app-server-control.sock
Root-cause analysis
The remote session’s visualization directory is located inside runtime-local tmpfs.
The fragment is therefore stored in ephemeral container memory rather than persistent storage. When the remote backend runtime is recreated, the mount is recreated and the visualization files are lost.
Related issues
- [#32054](https://github.com/openai/codex/issues/32054) — renderer reads from the wrong
.codexvisualization directory. - [#40334](https://github.com/openai/codex/issues/40334) — valid visualization path displays a missing-image placeholder.
- [#37419](https://github.com/openai/codex/issues/37419) — runtime payload files disappear while metadata survives.
- [#21167](https://github.com/openai/codex/issues/21167) — reconnect loop when restarting conversations.
Contributor 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.
Research direction
Start by tracing how visualization files under /mnt/.codex/visualizations/YYYY/MM/DD//example.html are created and resolved, and how the remote runtime mounts that path. Reproduce the backend restart, then verify that completed-session visualizations remain available or that the UI reports an actionable missing-file error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100