Skip to content

ChatGPT Desktop Codex: existing chats missing from sidebar after migration #37853

Open

Description

@sergioguerramx

What version of Codex CLI is running?

0.147.0

What subscription do you have?

ChatGPT Plus

Which model were you using?

gpt-5.6-sol (High)

What platform is your computer?

macOS, Apple Silicon (arm64)

What terminal emulator and version are you using (if applicable)?

Apple Terminal.app

Codex doctor report

{
  "schemaVersion": 1,
  "generatedAt": "1786382677s since unix epoch",
  "overallStatus": "ok",
  "codexVersion": "0.147.0",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is not running",
      "details": {
        "control socket": "/Users/sergio/.codex/app-server-control/app-server-control.sock",
        "daemon state dir": "/Users/sergio/.codex/app-server-daemon",
        "mode": "ephemeral",
        "pid file": "/Users/sergio/.codex/app-server-daemon/app-server.pid (missing)",
        "settings": "/Users/sergio/.codex/app-server-daemon/settings.json (missing)",
        "status": "not running",
        "update-loop pid file": "/Users/sergio/.codex/app-server-daemon/app-server-updater.pid (missing)"
      },
      "remediation": null,
      "durationMs": 0
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "/Users/sergio/.codex/auth.json",
        "auth storage mode": "File",
        "stored API key": "false",
        "stored ChatGPT tokens": "true",
        "stored agent identity": "false",
        "stored auth mode": "chatgpt"
      },
      "remediation": null,
      "durationMs": 0
    },
    "config.load": {
      "id": "config.load",
      "category": "config",
      "status": "ok",
      "summary": "config loaded",
      "details": {
        "CODEX_HOME": "/Users/sergio/.codex",
        "config.toml": "/Users/sergio/.codex/config.toml",
        "config.toml parse": "ok",
        "cwd": "/Users/sergio",
        "enabled feature flags": "shell_tool, view_image, unified_exec, shell_snapshot, code_mode_host, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, apps, tool_search_always_defer_mcp_tools, tool_suggest, plugins, in_app_browser, in_app_updates, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, remote_plugin, plugin_sharing, image_generation, resize_all_images, item_ids, skill_mcp_dependency_install, skill_search, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, auth_elicitation, personality, fast_mode, tui_app_server, remote_compaction_v2, workspace_dependencies",
        "feature flag overrides": "none",
        "feature flags enabled": "39",
        "log dir": "/Users/sergio/.codex/log",
        "mcp servers": "2",
        "model": "gpt-4o",
        "model provider": "OpenAI",
        "sqlite home": "/Users/sergio/.codex"
      },
      "remediation": null,
      "durationMs": 0
    },
    "git.environment": {
      "id": "git.environment",
      "category": "git",
      "status": "ok",
      "summary": "git version 2.39.5 (Apple Git-154)",
      "details": {
        "PATH git #1": "/usr/bin/git",
        "PATH git entries": "1",
        "git build options": "git version 2.39.5 (Apple Git-154); cpu: arm64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /bin/sh; feature: fsmonitor--daemon",
        "git exec path": "/Library/Developer/CommandLineTools/usr/libexec/git-core",
        "git version": "git version 2.39.5 (Apple Git-154)",
        "repo detected": "false",
        "selected git": "/usr/bin/git"
      },
      "remediation": null,
      "durationMs": 33
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "/Users/sergio/.local/bin/codex",
        "current executable": "/Users/sergio/.local/bin/codex",
        "install context": "standalone (unix, package /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin, bin /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/bin, resources /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/codex-resources, path /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/codex-path)",
        "managed by bun": "false",
        "managed by npm": "false",
        "managed by pnpm": "false",
        "managed package root": "not set"
      },
      "remediation": null,
      "durationMs": 8
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "ok",
      "summary": "MCP configuration is locally consistent",
      "details": {
        "configured servers": "2",
        "disabled servers": "1",
        "stdio servers": "2"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "proxy env vars": "none"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "ok",
      "summary": "active provider endpoints are reachable over HTTP",
      "details": {
        "ChatGPT base URL": "https://chatgpt.com/backend-api/ reachable (HTTP 404)",
        "reachability mode": "ChatGPT auth"
      },
      "remediation": null,
      "durationMs": 248
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket is not enabled for the active provider",
      "details": {
        "model provider": "OpenAI",
        "provider name": "OpenAI",
        "proxy env vars": "none",
        "supports websockets": "false",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running standalone on macos-aarch64",
      "details": {
        "commit": "unknown",
        "current executable": "/Users/sergio/.local/bin/codex",
        "install method": "standalone (unix, package /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin, bin /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/bin, resources /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/codex-resources, path /Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/codex-path)",
        "platform": "macos-aarch64",
        "version": "0.147.0"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search is OK (bundled)",
      "details": {
        "search command": "/Users/sergio/.codex/packages/standalone/releases/0.147.0-aarch64-apple-darwin/codex-path/rg",
        "search command readiness": "file exists",
        "search provider": "bundled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "sandbox.helpers": {
      "id": "sandbox.helpers",
      "category": "sandbox",
      "status": "ok",
      "summary": "sandbox configuration is readable",
      "details": {
        "approval policy": "OnRequest",
        "codex-linux-sandbox helper": "none",
        "execve wrapper helper": "/Users/sergio/.codex/tmp/arg0/codex-arg0MBus7L/codex-execve-wrapper",
        "filesystem sandbox": "restricted",
        "network sandbox": "restricted"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "/Users/sergio/.codex (dir)",
        "active rollout files": "101 files, 10560577991 total bytes, 104560178 average bytes",
        "archived rollout files": "22 files, 203784897 total bytes, 9262949 average bytes",
        "goals DB": "/Users/sergio/.codex/goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "/Users/sergio/.codex/logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "/Users/sergio/.codex/log (dir)",
        "memories DB": "/Users/sergio/.codex/memories_1.sqlite (file)",
        "memories DB integrity": "ok",
        "queue DB": "/Users/sergio/.codex/queue_1.sqlite (file)",
        "queue DB integrity": "ok",
        "sqlite home": "/Users/sergio/.codex (dir)",
        "standalone release cache": "1 entries in /Users/sergio/.codex/packages/standalone/releases",
        "state DB": "/Users/sergio/.codex/state_5.sqlite (file)",
        "state DB integrity": "ok",
        "thread history DB": "/Users/sergio/.codex/thread_history_1.sqlite (missing)",
        "thread history DB integrity": "skipped (missing)"
      },
      "remediation": null,
      "durationMs": 149
    },
    "state.rollout_db_parity": {
      "id": "state.rollout_db_parity",
      "category": "threads",
      "status": "ok",
      "summary": "rollout files and state DB thread inventory agree",
      "details": {
        "default model provider": "OpenAI",
        "rollout DB active files": "101",
        "rollout DB active rows": "101",
        "rollout DB archive mismatches": "0",
        "rollout DB archived files": "22",
        "rollout DB archived rows": "22",
        "rollout DB duplicate DB paths": "0",
        "rollout DB duplicate rollout thread ids": "0",
        "rollout DB malformed file names": "0",
        "rollout DB missing active rows": "0",
        "rollout DB missing archived rows": "0",
        "rollout DB model providers": "openai=123",
        "rollout DB rows": "123",
        "rollout DB scan cap reached": "false",
        "rollout DB scan errors": "0",
        "rollout DB sources": "subagent:other=73, vscode=50",
        "rollout DB stale rows": "0"
      },
      "remediation": null,
      "durationMs": 48
    },
    "system.environment": {
      "id": "system.environment",
      "category": "system",
      "status": "ok",
      "summary": "OS language es-MX",
      "details": {
        "EDITOR": "not set",
        "LANG": "es_MX.UTF-8",
        "VISUAL": "not set",
        "os": "Mac OS 26.6.1 [64-bit]",
        "os language": "es-MX",
        "os type": "Mac OS",
        "os version": "26.6.1"
      },
      "remediation": null,
      "durationMs": 1
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "ok",
      "summary": "terminal metadata was detected",
      "details": {
        "COLORTERM": "truecolor",
        "TERM_PROGRAM": "Apple_Terminal",
        "color output": "disabled (stdout is not a terminal)",
        "effective locale": "es_MX.UTF-8",
        "stderr is terminal": "true",
        "stdin is terminal": "true",
        "stdout is terminal": "false",
        "terminal": "Apple Terminal",
        "terminal size": "317x79",
        "terminal version": "470.2"
      },
      "remediation": null,
      "durationMs": 0
    },
    "terminal.title": {
      "id": "terminal.title",
      "category": "title",
      "status": "ok",
      "summary": "terminal title default",
      "details": {
        "terminal title activity": "true",
        "terminal title items": "activity, project-name",
        "terminal title project source": "cwd",
        "terminal title project value": "sergio",
        "terminal title source": "default"
      },
      "remediation": null,
      "durationMs": 0
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "ok",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.147.0",
        "check for update on startup": "true",
        "last checked at": "2026-08-10T16:02:18.710033Z",
        "latest version": "0.147.0",
        "latest version status": "current version is not older",
        "update action": "standalone installer",
        "version cache": "/Users/sergio/.codex/version.json"
      },
      "remediation": null,
      "durationMs": 697
    }
  }
}

What issue are you seeing?

After migrating/updating to ChatGPT Desktop 26.803.41515, all my existing Codex chats disappeared from the sidebar.

My projects are still visible, but they all show “No chats”. Recents is also empty, and Archived Chats shows no conversations.

The conversations have NOT been deleted. Local session files still exist under ~/.codex/sessions, and state_5.sqlite still contains the existing threads.

Codex doctor confirms:

  • Overall status: OK
  • state DB integrity: OK
  • 101 active rollout files / threads
  • 22 archived rollout files / threads
  • 123 total threads
  • 0 missing active rows
  • 0 missing archived rows
  • 0 scan errors

I can successfully reopen an existing conversation with its complete history using codex resume <SESSION_ID>.

However:

  • codex resume --all incorrectly shows “No sessions yet”.
  • ChatGPT Desktop Codex shows no chats inside Projects or Recents.
  • Archived Chats also shows none.
  • Authentication is correctly using my ChatGPT Plus account.

Example existing thread that opens correctly by ID:
019f7597-62d7-7a71-ad15-daf41ca3b28b

I already uploaded the relevant Codex logs and diagnostics using /feedback.

Please restore/reindex the existing Codex chat history so all conversations appear again in ChatGPT Desktop without deleting or replacing the existing local sessions.

What steps can reproduce the bug?

Uploaded thread: 019f7597-62d7-7a71-ad15-daf41ca3b28b

What is the expected behavior?

All existing Codex conversations should remain visible after migration to ChatGPT Desktop.

The conversations should appear under their original projects and/or in Recents, and codex resume --all should enumerate the existing saved sessions.

The existing local sessions should be reindexed/restored in the UI without deleting, replacing, or recreating their transcripts.

Additional information

No response

Activity

  1. added
    appIssues related to the Codex desktop app
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Aug 10, 2026
  2. github-actions commented on Aug 10, 2026

    @github-actions
    Contributor

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

    Powered by Codex Action

  3. sergioguerramx commented on Aug 10, 2026

    @sergioguerramx
    Author

    Additional reproduction details from macOS:

    After restoring the missing chats, they are fully usable with their existing history, but the fix is not persistent. If ChatGPT Desktop restarts, the chats disappear from the sidebar again and the projects return to showing “No chats”.

    What I verified locally while ChatGPT Desktop was fully closed:

    • local-projects: 9 projects registered.
    • thread-project-assignments: 24 assignments.
    • projectless-thread-ids: 8.
    • sidebar-project-thread-orders: 0 projects / empty.
    • thread-workspace-root-hints: 8.
    • Codex Doctor reports 101 active rollout files/rows + 22 archived = 123 total threads, with state DB integrity OK and no missing rows, stale rows, duplicate IDs, or scan errors.
    • Authentication is correctly using ChatGPT, not an API key.

    A direct deep-link workaround restores visibility immediately:

    open "codex://threads/<thread-id>"

    Opening the existing local threads this way makes them reappear under their original projects and they can be used normally with the full existing history. However, after the Desktop app restarts, the sidebar is empty again. Re-running the deep-link restoration makes them reappear again.

    I also reviewed #36663. It appears related, but my case is on macOS and the key additional behavior is that restored project/thread visibility is lost again on every Desktop restart.

    This strongly suggests that Desktop startup is rebuilding/overwriting the sidebar thread ordering/index incorrectly. The fact that sidebar-project-thread-orders is empty while the underlying thread DB and rollout inventory are healthy may be relevant.

    Current environment:

    • ChatGPT Desktop 26.803.41515
    • Codex CLI 0.147.0
    • macOS 26.6.1, Apple Silicon (arm64)
    • ChatGPT Plus

    Temporary workaround: I can automatically reopen the existing threads with codex://threads/<thread-id> after each Desktop launch, but this should not be necessary and does not fix the underlying persistence problem.

  4. ieltsbill commented on Sep 3, 2026

    @ieltsbill

    Additional macOS reproduction/evidence (September 2026):

    • An older unarchived project task disappeared from the Codex project sidebar after a recent desktop update/restart.
    • The underlying local session/rollout file and SQLite thread row were still present; the thread could be opened directly by its ID.
    • The task was not archived or deleted. Refreshing its title metadata and manually moving it back to the project restored visibility.
    • In the same account, older tasks created in legacy temporary working directories also retained their history but did not automatically acquire the association with a newly saved local project.
    • This suggests a sidebar/project-assignment migration or indexing problem, not data loss.

    Expected behavior: all unarchived user threads should retain their project association and remain discoverable in the project list after updates. A supported reindex/repair action would also help users recover surviving threads without editing local state manually.

  5. ieltsbill commented on Sep 3, 2026

    @ieltsbill

    Clarification to the preceding report: the affected task was an older unarchived local Codex thread whose rollout and SQLite row remained intact. Opening it by ID and manually reassigning it to the original project restored the sidebar entry; no conversation data was lost. A separate legacy task created before a local project was saved also retained its history but did not automatically acquire the later project association. These cases point to project-assignment/index migration gaps in addition to ordinary sidebar recency behavior.

  6. jsegeren commented on Sep 19, 2026

    @jsegeren

    If codex resume <SESSION_ID> can open the complete conversation, the transcript itself survived. The failure appears to be in Desktop’s persisted index/project association rather than the underlying conversation data.

    One important migration precaution is not to replace the destination Mac’s authentication or installation identity wholesale. The database, transcripts, project paths, and selected workspaces need to move as a consistent set while preserving the new Mac’s identity. Changed usernames and absolute home paths also need explicit handling.

    I maintain Codex Migrate/Codex Vault for this exact class of problem. Migrate stages and verifies the related state together, creates a rollback backup, and handles changed home paths; Vault provides an independent searchable view and versioned backups so conversations remain accessible even when Desktop’s sidebar loses them:

    https://migrate.segeren.com/

    Independent project, not affiliated with OpenAI. The CLI and migration engine are MIT-licensed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingsessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions