VS Code extension rejects restored byte payload when continuing an old chat after restart
Nobody has claimed this yet.
- 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?
- Open a local workspace in VS Code.
- Start or open a Codex conversation and exchange messages normally.
- Save work and fully quit VS Code.
- Reopen VS Code and the same workspace.
- Select the existing Codex conversation from the session history.
- Enter and send a follow-up message.
- Observe the red
Error creating chatnotification withunknown 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
Uint8Arrayonly 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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