openai / openai/codex

VS Code extension rejects restored byte payload when continuing an old chat after restart

Open
#42,760 10 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app-server bug extension
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the IDE extension are you using?

openai.chatgpt 26.901.22334 (darwin-arm64)

What subscription do you have?

ChatGPT Pro

Which IDE are you using?

Visual Studio Code 1.136.1 (a44adf7f53e00964ab890f9f8758a334f1fc15bc, arm64)

What platform is your computer?

Darwin 25.6.0 arm64 arm

What issue are you seeing?

After fully quitting VS Code, reopening the same workspace, opening an existing Codex conversation, and trying to send a follow-up, the extension displays:

Error creating chat
unknown special value: ["bytes", {"0":123,"1":34,"2":115,"3":117,"4":99,"5":99,"6":101,"7":115,"8":115,...}]

The existing conversation remains visible and readable. The error occurs when attempting to continue it after the restart.

The numeric byte values begin with ASCII for {"success..., so this appears to be a byte-array representation that lost its Uint8Array prototype while crossing a persisted or restored RPC boundary.

Inspection of the installed extension bundle isolates the rejection to the RPC deserializer's case "bytes". That branch accepts a Uint8Array or base64 string, but the restored value is a plain object with contiguous numeric keys and byte values. It therefore falls through to unknown special value.

No raw session files, database contents, prompts, repository names, account identifiers, or credentials are included in this report.

What steps can reproduce the bug?

  1. Open a local workspace in VS Code.
  2. Start or open a Codex conversation and exchange messages normally.
  3. Save work and fully quit VS Code.
  4. Reopen VS Code and the same workspace.
  5. Select the existing Codex conversation from the session history.
  6. Enter and send a follow-up message.
  7. Observe the red Error creating chat notification with unknown special value: ["bytes", {"0":...}].

What is the expected behavior?

Existing Codex conversations should remain writable after VS Code restarts. The RPC decoder should preserve the byte-array type across persistence, or safely reconstruct a validated contiguous numeric byte map as a Uint8Array.

Additional information

  • The local Codex session is still present and parseable.
  • VS Code's state databases pass integrity checks.
  • New/current conversations work; the failure is associated with continuing a restored conversation after restart.
  • A narrow local compatibility patch that reconstructs a Uint8Array only when every key is contiguous ("0" through "n") and every value is an integer from 0 to 255 prevents this decoder rejection. This is reported as diagnostic evidence, not as a proposed permanent persistence format.
  • Possibly related session-hydration report: #20131. This report differs by providing a concrete RPC serialization error and the rejected runtime value rather than a blank or unopenable session.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the RPC deserializer's case "bytes" branch in the installed extension bundle and reproduce the restart-and-follow-up sequence described in the issue. Inspect how the restored plain numeric-key object is handled; done means an existing conversation can be continued after restarting VS Code without the unknown special value error.

Written by the indexing model from the issue text.

Assessment

Tech stack
vscode
Domain
developer-experience
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.