Codex VScode extension not loading previous conversation

Open 💬 13 comments Opened Apr 25, 2026 by johnolusetire
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the IDE extension are you using?

26.422.30944

What subscription do you have?

Plus

Which IDE are you using?

VS Code (server)

What platform is your computer?

Linux 4.18.0-553.33.1.el8_10.x86_64 x86_64 x86_64

What issue are you seeing?

Codex never loads my previous conversations.

The logs i get whenver i open a previous conversation

2026-04-24 21:09:49.454 [warning] [IpcClient] Received broadcast but no handler is configured method=query-cache-invalidate
2026-04-24 21:09:49.882 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"SELECT version, checksum FROM …\" db.statement=\"\\n\\nSELECT version, checksum FROM _sqlx_migrations ORDER BY version\\n\" rows_affected=0 rows_returned=2 elapsed=5.117696881s elapsed_secs=5.117696881 slow_threshold=1s"
2026-04-24 21:09:49.888 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.121098009s elapsed_secs=5.121098009 slow_threshold=1s"
2026-04-24 21:09:49.899 [error] [CodexMcpConnection] cli: message="2026-04-25T01:09:49.899192Z  WARN sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=1 elapsed=10.137567518s elapsed_secs=10.137567518 slow_threshold=1s\n2026-04-25T01:09:49.899361Z  WARN sqlx::pool::acquire: acquired connection, but time to acquire exceeded slow threshold aquired_after_secs=10.13785396 slow_acquire_threshold_secs=2.0"
2026-04-24 21:09:49.916 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=1 elapsed=9.852263305s elapsed_secs=9.852263305 slow_threshold=1s"
2026-04-24 21:09:49.916 [warning] [CodexMcpConnection] cli: message="sqlx::pool::acquire: acquired connection, but time to acquire exceeded slow threshold aquired_after_secs=9.852570305 slow_acquire_threshold_secs=2.0"
2026-04-24 21:09:55.023 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"CREATE TABLE IF NOT …\" db.statement=\"\\n\\n\\nCREATE TABLE IF NOT EXISTS _sqlx_migrations (\\n    version BIGINT PRIMARY KEY,\\n    description TEXT NOT NULL,\\n    installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\\n    success BOOLEAN NOT NULL,\\n    checksum BLOB NOT NULL,\\n    execution_time BIGINT NOT NULL\\n);\\n                \\n\" rows_affected=0 rows_returned=0 elapsed=5.106661486s elapsed_secs=5.106661486 slow_threshold=1s"
2026-04-24 21:09:55.026 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"DELETE FROM logs WHERE …\" db.statement=\"\\n\\nDELETE FROM logs WHERE ts < ?\\n\" rows_affected=0 rows_returned=0 elapsed=5.116186596s elapsed_secs=5.116186596 slow_threshold=1s"
2026-04-24 21:09:55.042 [error] [CodexMcpConnection] cli: message="2026-04-25T01:09:55.042579Z  WARN sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=1 elapsed=5.096688158s elapsed_secs=5.096688158 slow_threshold=1s\n2026-04-25T01:09:55.042610Z  WARN sqlx::pool::acquire: acquired connection, but time to acquire exceeded slow threshold aquired_after_secs=5.096829866 slow_acquire_threshold_secs=2.0"
2026-04-24 21:10:00.140 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"CREATE TABLE IF NOT …\" db.statement=\"\\n\\n\\nCREATE TABLE IF NOT EXISTS _sqlx_migrations (\\n    version BIGINT PRIMARY KEY,\\n    description TEXT NOT NULL,\\n    installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\\n    success BOOLEAN NOT NULL,\\n    checksum BLOB NOT NULL,\\n    execution_time BIGINT NOT NULL\\n);\\n                \\n\" rows_affected=0 rows_returned=0 elapsed=5.097230934s elapsed_secs=5.097230934 slow_threshold=1s"
2026-04-24 21:10:00.141 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"DELETE FROM logs WHERE …\" db.statement=\"\\n\\nDELETE FROM logs WHERE ts < ?\\n\" rows_affected=0 rows_returned=0 elapsed=5.109029491s elapsed_secs=5.109029491 slow_threshold=1s"2026-04-24 21:09:49.454 [warning] [IpcClient] Received broadcast but no handler is configured method=query-cache-invalidate
2026-04-24 21:09:49.882 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"SELECT version, checksum FROM …\" db.statement=\"\\n\\nSELECT version, checksum FROM _sqlx_migrations ORDER BY version\\n\" rows_affected=0 rows_returned=2 elapsed=5.117696881s elapsed_secs=5.117696881 slow_threshold=1s"
2026-04-24 21:09:49.888 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA wal_checkpoint(TRUNCATE)\" db.statement=\"\" rows_affected=0 rows_returned=1 elapsed=5.121098009s elapsed_secs=5.121098009 slow_threshold=1s"
2026-04-24 21:09:49.899 [error] [CodexMcpConnection] cli: message="2026-04-25T01:09:49.899192Z  WARN sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=1 elapsed=10.137567518s elapsed_secs=10.137567518 slow_threshold=1s\n2026-04-25T01:09:49.899361Z  WARN sqlx::pool::acquire: acquired connection, but time to acquire exceeded slow threshold aquired_after_secs=10.13785396 slow_acquire_threshold_secs=2.0"
2026-04-24 21:09:49.916 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=1 elapsed=9.852263305s elapsed_secs=9.852263305 slow_threshold=1s"
2026-04-24 21:09:49.916 [warning] [CodexMcpConnection] cli: message="sqlx::pool::acquire: acquired connection, but time to acquire exceeded slow threshold aquired_after_secs=9.852570305 slow_acquire_threshold_secs=2.0"
2026-04-24 21:09:55.023 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"CREATE TABLE IF NOT …\" db.statement=\"\\n\\n\\nCREATE TABLE IF NOT EXISTS _sqlx_migrations (\\n    version BIGINT PRIMARY KEY,\\n    description TEXT NOT NULL,\\n    installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\\n    success BOOLEAN NOT NULL,\\n    checksum BLOB NOT NULL,\\n    execution_time BIGINT NOT NULL\\n);\\n                \\n\" rows_affected=0 rows_returned=0 elapsed=5.106661486s elapsed_secs=5.106661486 slow_threshold=1s"
2026-04-24 21:09:55.026 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"DELETE FROM logs WHERE …\" db.statement=\"\\n\\nDELETE FROM logs WHERE ts < ?\\n\" rows_affected=0 rows_returned=0 elapsed=5.116186596s elapsed_secs=5.116186596 slow_threshold=1s"
2026-04-24 21:09:55.042 [error] [CodexMcpConnection] cli: message="2026-04-25T01:09:55.042579Z  WARN sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=1 elapsed=5.096688158s elapsed_secs=5.096688158 slow_threshold=1s\n2026-04-25T01:09:55.042610Z  WARN sqlx::pool::acquire: acquired connection, but time to acquire exceeded slow threshold aquired_after_secs=5.096829866 slow_acquire_threshold_secs=2.0"
2026-04-24 21:10:00.140 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"CREATE TABLE IF NOT …\" db.statement=\"\\n\\n\\nCREATE TABLE IF NOT EXISTS _sqlx_migrations (\\n    version BIGINT PRIMARY KEY,\\n    description TEXT NOT NULL,\\n    installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\\n    success BOOLEAN NOT NULL,\\n    checksum BLOB NOT NULL,\\n    execution_time BIGINT NOT NULL\\n);\\n                \\n\" rows_affected=0 rows_returned=0 elapsed=5.097230934s elapsed_secs=5.097230934 slow_threshold=1s"
2026-04-24 21:10:00.141 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"DELETE FROM logs WHERE …\" db.statement=\"\\n\\nDELETE FROM logs WHERE ts < ?\\n\" rows_affected=0 rows_returned=0 elapsed=5.109029491s elapsed_secs=5.109029491 slow_threshold=1s"

I have confirmed that all the logs still exist in the .codex directory.

It makes it literally unusable because i have to start a new session when i am working on the same project.

What steps can reproduce the bug?

Try resuming a chat in a remote vs code session.

What is the expected behavior?

That i can continue a previous chat in the same workspace/project.

Additional information

_No response_

View original on GitHub ↗

13 Comments

github-actions[bot] contributor · 2 months ago

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

  • #18993
  • #19137
  • #19397
  • #19434

Powered by Codex Action

Brezn610 · 2 months ago

I met the same problem as you, and it happened in cursor IDE too.

johnolusetire · 2 months ago
I met the same problem as you, and it happened in cursor IDE too.

I had to install the cli version to even use it. The extension is basically unusable

qwertyforce · 2 months ago

i have the same issue, i made the mistake of updating the chatgpt extension to the latest version, and now conversations don’t load.
reverted to 26.415.20818, and it works now.

johnolusetire · 2 months ago
i have the same issue, i made the mistake of updating the chatgpt extension to the latest version, and now conversations don’t load. reverted to 26.415.20818, and it works now.

Installed this version and it is still inconsistent in loading the chats. I don't know if it is a db error or something else, but this is the only coding extension that just doesn't work.


2026-04-25 11:31:09.041 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=0 elapsed=10.373912136s elapsed_secs=10.373912136 slow_threshold=1s"
2026-04-25 11:31:09.044 [error] [CodexMcpConnection] cli: message="2026-04-25T15:31:09.044315Z WARN codex_rollout::list: state db discrepancy during find_thread_path_by_id_str_in_subdir: falling_back\n2026-04-25T15:31:09.044347Z WARN codex_state::runtime: failed to open state db at /home/joluseti/.codex/state_5.sqlite: error returned from database: (code: 15) locking protocol"
2026-04-25 11:31:09.065 [warning] [CodexMcpConnection] cli: message="codex_rollout::list: state db discrepancy during find_thread_path_by_id_str_in_subdir: falling_back"
2026-04-25 11:31:19.253 [error] [CodexMcpConnection] cli: message="2026-04-25T15:31:19.252471Z WARN sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=0 elapsed=10.17838329s elapsed_secs=10.17838329 slow_threshold=1s\n2026-04-25T15:31:19.252528Z WARN codex_state::runtime: failed to open state db at /home/joluseti/.codex/state_5.sqlite: error returned from database: (code: 15) locking protocol"
2026-04-25 11:31:19.255 [warning] [CodexMcpConnection] cli: message="sqlx::query: slow statement: execution time exceeded alert threshold summary=\"PRAGMA auto_vacuum = INCREMENTAL; …\" db.statement=\"\\n\\nPRAGMA auto_vacuum = INCREMENTAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA synchronous = NORMAL; \\n\" rows_affected=0 rows_returned=0 elapsed=10.170988952s elapsed_secs=10.170988952 slow_threshold=1s"
2026-04-25 11:31:19.274 [error] [CodexMcpConnection] cli: message="2026-04-25T15:31:19.273914Z WARN codex_rollout::list: state db discrepancy during find_thread_path_by_id_str_in_subdir: falling_back\n2026-04-25T15:31:19.273945Z WARN codex_state::runtime: failed to open state db at /home/joluseti/.codex/state_5.sqlite: error returned from database: (code: 15) locking protocol"
2026-04-25 11:31:19.739 [error] Error fetching httpStatus=400 requestId=9f1e64df0f9f2078-IAD statusText="Bad Request" url=/wham/environments/by-repo/github/johnolusetire/windtexter

metrax · 2 months ago
johnolusetire · 2 months ago
Have a look to my workaround here: #18993 (comment)

This worked initially, then it just went back to being slow at loading the conversation and then my codex cli became slow and it couldn't retrieve my old chat history. I just backed up my old .codex directory and deleted it for a fresh start. Luckily i was using it in one project, so much wasn't lost.

I am sticking to the codex cli for now, I haven't tried the extension since the reset. It just sucks because claude code extension works really well.

The only major difference i can see is that claude code only lets you continue a chat in a the workspace you started it like copilot chat, but codex allows you to open a previous chat anywhere. I wonder if this is the cause.

ULudo · 2 months ago

I hit what looks like the same issue on the VS Code remote extension with Codex extension 26.422.30944.

Symptoms:

  • Existing chat would spin forever / not load.
  • Reloading the VS Code window did not help.
  • Fully closing and reopening the remote VS Code connection did not help.
  • The target session JSONL and Codex SQLite DBs were valid; a fresh codex app-server could read the thread successfully.

The extension log showed repeated startup overload around apps/connectors, including:

codex_app_server::transport: dropping overload response ... outbound queue is full
Server overloaded; retry later.
unsupported feature enablement `workspace_dependencies`
[IpcClient] Received broadcast but no handler is configured method=thread-stream-state-changed

Workaround that fixed it for me:

# ~/.codex/config.toml
[features]
apps = false
workspace_dependencies = false

Then reload/reconnect VS Code so the extension starts a fresh app-server.

This appears to disable the connector/apps startup path that was wedging the extension. It is a workaround, not a root-cause fix, and it may temporarily disable app/connectors and workspace dependency features.

geniusadventurer · 2 months ago

The same problem. I used Codex VSCode extension in WSL Ubuntu 22.04. The version is 26.422.30944.

TechaY · 2 months ago

I’m having the same problem too. I have to try several times without really understanding why it sometimes works.

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS"
VISUAL STUDIO CODE = 1.118.1

mistcoversmyeyes · 2 months ago

I've faced the same problem after upgraded to codex vscode plugin version 26.313.41514+.

lcv-leo · 2 months ago

I hit a related resume/open-existing-conversation failure mode while investigating the VS Code extension on Windows with extension 26.506.31004.

This may not be the only root cause for this issue, but there is a code path that looks risky and aligns with the slow SQLite/app-server symptoms reported above.

Observation

For an existing conversation, the custom editor resolver parses the URI and then awaits the conversation summary before initializing the webview:

async resolveCustomEditor(e, r, n) {
  let o = h_(e.uri);
  ...
  let { conversationId:i } = o, s = null, a = null;
  if (i != null) try {
    let { summary:c } = await this.conversationSummaryProvider.getConversationSummary(i);
    s = c.preview;
    a = c.modelProvider;
  } catch (c) { ... }

  r.title = bre(s);
  ...
  await this.initializeWebview(r.webview, "panel", () => { this.onPanelReady(r); });
}

If getConversationSummary(i) is delayed by app-server startup, SQLite locking, slow migrations, or an overloaded queue, the editor webview is not initialized yet. From the user side this presents as a previous conversation that never loads / blank panel / needing repeated reloads.

That seems consistent with the logs reported in this issue: slow sqlx statements, connection acquisition delays, state DB discrepancies, and lock errors.

Local mitigation tested at bundle level

I patched the local installed bundle so the webview initializes first, and the summary/title update runs asynchronously after the panel is already mounted:

- if (i != null) {
-   const { summary } = await conversationSummaryProvider.getConversationSummary(i);
-   ...
- }
- await initializeWebview(...)
+ await initializeWebview(...)
+ if (i != null) {
+   conversationSummaryProvider.getConversationSummary(i)
+     .then(({ summary }) => { update title / pending conversation metadata })
+     .catch(log)
+ }

This is not a full fix for SQLite/app-server locking, but it prevents summary lookup from blocking initial webview creation. A more robust upstream version could use a race/timeout for summary loading, initialize the panel immediately with a fallback title/provider, and update metadata when the app-server responds.

UX workaround that also helped

I also built a small companion Activity Bar view that:

  • reads recent sessions from ~/.codex/session_index.jsonl,
  • displays them in a sidebar picker,
  • opens an existing session through openai-codex://route/local/<conversationId> + chatgpt.conversationEditor,
  • warms the official sidebar/app-server path before opening,
  • retries vscode.openWith a small bounded number of times.

This made the resume flow less dependent on the official session list rendering first. It would be useful if the official extension exposed a similar Activity Bar conversation picker directly.

Suggested upstream direction

  1. Do not block resolveCustomEditor webview initialization on getConversationSummary().
  2. Add a timeout/fallback around summary and model-provider metadata loading.
  3. Keep the existing conversation editor route (/local/<conversationId>) usable even when the session list provider is slow.
  4. Consider adding an official Activity Bar conversation picker with explicit New Chat and recent-session actions.
JayceeB1 · 2 months ago

Still got this bug.
Strangely, when I open Codex Desktop for Windows and open a conversation with it, it loads the conversation correctly in VS Code?!
This is very annoying :/