Frequent websocket_error: Duplicate item found (fc_call_* replay from session-state)
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
## Summary
I am repeatedly hitting this failure in Copilot CLI:
```
Execution failed: CAPIError: 400 {"error":{"code":"bad_request","type":"websocket_error","message":"Duplicate item found with id fc_call_<...>. Remove duplicate items from your input and try again."}}
```
This appears to be session-state replay/corruption of prior `fc_call_*` items. Once it starts in a session, subsequent prompts in that same session fail quickly with the same duplicate-id error.
## Frequency (from local `~/.copilot/session-state/*/events.jsonl`)
- Sessions affected: **10**
- Duplicate-item error events: **29**
- Time window observed: **2026-05-28 ~18:46Z to ~19:43Z**
- Worst session: `3604526b-3b17-4790-b5f5-9d4359783706` with **15** events in ~4.5 minutes
Additional affected sessions:
- `893105c9-9726-497f-a54c-c384bd5b51b3` (3)
- `6257b848-6652-450c-b949-b8d0477d3b56` (2)
- `63d34bda-bddd-4246-aca5-5258e94d88dd` (2)
- `ce4e9dd9-bca8-4181-ac70-7c398be8e204` (2)
- plus 5 more sessions with single occurrences
## Repro pattern
1. Normal interaction with tool calls.
2. A turn fails with duplicate `fc_call_*` id.
3. Retrying in the same session keeps failing with duplicate-id style websocket 400s.
4. Only workaround is deleting the bad session directory or resetting session-state.
## Impact
This happens frequently enough to materially disrupt use; repeated manual session resets are not productive.
## Environment
- Copilot CLI version: 1.0.54
- OS: macOS (Darwin)
Please advise on mitigation and whether a client-side de-dup guard can be added before sending websocket payload items.
Hướng dẫn đóng góp
Hướng nghiên cứu
Start by examining the session data under ~/.copilot/session-state/*/events.jsonl and reproduce the duplicate fc_call_* failure with Copilot CLI 1.0.54 on macOS. Trace how session-state items are replayed into websocket payloads; done means affected sessions no longer resend duplicate IDs and the existing recovery or reset behavior is covered by verification.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- macos
- Lĩnh vực
- cli
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100