Codex Desktop silently omits a valid V2 custom pet on native Windows

Open 💬 1 comment Opened Jul 15, 2026 by langxxx-code

What version of the Codex App are you using (From “About Codex” dialog)?

26.707.9981.0 (Windows app package)

What subscription do you have?

Unknown / not relevant to local pet discovery

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

Codex Desktop does not discover a valid V2 custom pet on native Windows. The pet directory is silently omitted from Settings > Appearance > Pets after clicking Refresh, and no actionable error is shown.

A V1 custom pet under the same CODEX_HOME\pets directory loads and can be selected, so custom pets are enabled and the root directory is readable. The V2 package passes the current hatch-pet validation, but it never appears in the pet list.

This is not a WSL setup: the Codex app-server is running as a native Windows process, and WSL_DISTRO_NAME / WSL_INTEROP are unset.

What steps can reproduce the bug?

  1. Run Codex Desktop natively on Windows (no WSL app-server).
  2. Create C:\Users\<USER>\.codex\pets\watt300png\pet.json:
{
  "displayName": "Watt300",
  "description": "A custom Codex pet",
  "spriteVersionNumber": 2,
  "spritesheetPath": "spritesheet.webp"
}
  1. Add a valid V2 spritesheet.webp:
  • dimensions: 1536 x 2288
  • 11 animation rows, including the required looking directions
  • lossless WebP (VP8L)
  • file size: 1,078,118 bytes
  1. Validate the package with the current hatch-pet validator; validation passes.
  2. Open Settings > Appearance > Pets and click Refresh custom pets.
  3. Restart Codex Desktop and refresh again.
  4. Observe that the V1 pet is listed, while this V2 pet is absent and cannot be selected.

What is the expected behavior?

A valid V2 custom pet should appear in Settings > Appearance > Pets and be selectable.

If a package cannot be loaded, Codex should show the per-folder validation/read error instead of silently dropping the directory.

Additional information

The following possible causes were checked without changing the result:

  • manifest JSON syntax and formatting
  • adding/removing an explicit id
  • removing unrelated PNG files from the pet directory
  • Windows file ACL/read access
  • required V2 atlas dimensions, rows, populated cells, and looking directions

The WebP is slightly larger than 1 MiB. A size/encoding boundary is only a hypothesis; I found no documented fs/readFile limit that confirms it.

Related WSL path issues: #20730, #20905, and #21471. This report is a different case because the app-server and pet directory are both native Windows paths.

View original on GitHub ↗

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