Session picker: live local sessions can be unreachable, and dead "Untitled" entries are listed
Session picker: live local sessions can be unreachable, and dead entries are listed
Summary
Two related problems with the session picker (Local / Web tabs) in the VS Code extension.
Both were found on a machine running 21 concurrent Claude Code sessions.
---
Issue A — Teleported sessions are listed as dead "Untitled" entries
When a session is teleported to a remote/cloud session, the local transcript is replaced
by a 97-byte stub:
{"type":"teleported-from","remoteSessionId":"session_01XXXXXXXXXXXXXXXXXXXXXX","messageCount":0}
These stubs still appear in the Local tab. Because messageCount is 0 there is no
content to derive a title from, so they render as "Untitled", and selecting one does
nothing — there is no conversation to open.
Nothing in the UI indicates the conversation moved to the cloud or which remote session
it became.
Expected: either hide stubs with messageCount: 0, or label them as teleported and
route the click to remoteSessionId.
Observed: a dead row labelled "Untitled" that silently does nothing.
3 such stubs existed in one project directory (plus one 0-byte session file, which is
also listed and also cannot be opened).
---
Issue B — Local sessions not created by the extension never appear in the picker
A session that is alive and has a valid local transcript does not appear in either
tab. The only difference from the sessions that do appear is its entrypoint:
| | Missing session | The other 20 sessions |
|---|---|---|
| entrypoint | sdk-cli | claude-vscode |
| version | 2.1.266 | 2.1.263 |
State of the missing session at the time of the report:
- alive (registered in
~/.claude/sessions/<pid>.json, process running) - transcript present at
~/.claude/projects/<encoded-cwd>/<uuid>.jsonl, 7.7 MB, 465 lines,
actively being appended to
- absent from the Local tab and from the Web tab
The tab is labelled "Local" and the session is local, so the filtering is surprising.
There is no UI affordance that says some local sessions are hidden, and no way to reach
the session from the UI at all — claude --resume <uuid> from a terminal is the only
route, and it requires already knowing the UUID.
Expected: the Local tab lists local sessions for the current working directory, or
the UI states that it only lists sessions created by the extension.
Observed: a live local session with no reachable path from the UI.
---
How to inspect
# entrypoint + version of every live session
for f in ~/.claude/sessions/*.json; do
python -c "import json,sys;o=json.load(open(sys.argv[1]));\
print(o.get('entrypoint'), o.get('version'), o.get('sessionId'))" "$f"
done
# teleport stubs (any session file under ~200 bytes)
find ~/.claude/projects -name '*.jsonl' -size -200c -exec head -c 200 {} \;
Environment
- Windows 10 Pro 19045
- VS Code extension
anthropic.claude-code2.1.263 active; 2.1.266 also installed
side by side; standalone CLI on disk is 2.1.251 (three versions coexisting)
- Working directory is a UNC network path
- 21 concurrent sessions in the same project directory
Notes
Issue A looks like a clear defect: a listed row that cannot do anything.
Issue B may be intended behaviour (the extension listing only sessions it owns), but if so
the "Local" label and the absence of any other UI path make it indistinguishable from a
lost session. A user whose session vanishes from both tabs has no way to tell that it is
still alive on disk.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗