/resume failure to load any sessions after update.

Resolved 💬 1 comment Opened Apr 25, 2026 by a-bit-thinker Closed Apr 25, 2026

What version of Codex CLI is running?

codex-cli 0.125.0

What subscription do you have?

/resume failure to load any sessions after update.

Which model were you using?

gpt-5.5

What platform is your computer?

Linux 6.8.0-107-generic x86_64

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

_No response_

What issue are you seeing?

/resume can hide all sessions after update due cwd and first_user_message filters

Version: codex-cli 0.125.0 / rust-v0.125.0

After updating Codex, /resume can show no sessions or incorrect sessions,
even for recent/new conversations.

I found two likely regressions:

  1. codex-rs/tui/src/resume_picker.rs

Local picker filtering uses std::env::current_dir() instead of the active
session Config.cwd.
If Codex was started with --cd, resumed from another cwd, or the process
cwd differs from the configured session cwd, valid rows are filtered out.

  1. codex-rs/state/src/runtime/threads.rs

Thread listing requires threads.first_user_message <> ''.
Migration 0007_threads_first_user_message.sql only backfilled
first_user_message for rows with has_user_event = 1, so upgraded/title-
only rows can become invisible to /resume.

Suggested fix:

  • Use config.cwd.as_path() for local picker cwd filtering.
  • Only apply server-side cwd filtering for remote sessions with an explicit

remote cwd.

  • Change state list filtering to allow `(first_user_message <> '' OR title <>

'')`.

  • Add a migration:

UPDATE threads SET first_user_message = title WHERE first_user_message = ''
AND title <> '';

What steps can reproduce the bug?

update to v0.125.0.

What is the expected behavior?

never load any session after use /resume. only show "loading session" with blank screen.

Additional information

Title: /resume can hide all sessions after update due cwd and
first_user_message filters

Version: codex-cli 0.125.0 / rust-v0.125.0

After updating Codex, /resume can show no sessions or incorrect sessions,
even for recent/new conversations.

I found two likely regressions:

  1. codex-rs/tui/src/resume_picker.rs

Local picker filtering uses std::env::current_dir() instead of the active
session Config.cwd.
If Codex was started with --cd, resumed from another cwd, or the process
cwd differs from the configured session cwd, valid rows are filtered out.

  1. codex-rs/state/src/runtime/threads.rs

Thread listing requires threads.first_user_message <> ''.
Migration 0007_threads_first_user_message.sql only backfilled
first_user_message for rows with has_user_event = 1, so upgraded/title-
only rows can become invisible to /resume.

Suggested fix:

  • Use config.cwd.as_path() for local picker cwd filtering.
  • Only apply server-side cwd filtering for remote sessions with an explicit

remote cwd.

  • Change state list filtering to allow `(first_user_message <> '' OR title <>

'')`.

  • Add a migration:

UPDATE threads SET first_user_message = title WHERE first_user_message = ''
AND title <> '';

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗