Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug]: Claude Desktop picker mode breaks claude.ai chat (sends time out, picker 502s) since the merged chat/Cowork front end; picker off fixes it

Closed
#6,511 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
api, backend

Research direction

Start by tracing the claude-intercept egress proxy at 127.0.0.1:10201 and the picker GET/POST paths that log “other 502.” Reproduce with Claude Desktop chat while picker mode is on, then compare with picker mode off; the issue reports that plain curl succeeds, so focus on the failing Desktop requests. Done means chat sends and session loads work with picker mode enabled, without the reported 502s and timeouts.

Written by the indexing model from the issue text.

Description

bug
Client or integration

Claude Desktop (macOS), first-party mode with picker mode on

Area

Proxy / Claude Desktop picker (claude-intercept egress on 127.0.0.1:10201)

Summary

With picker mode active, Claude Desktop pins all of its traffic to the opencodex egress proxy ([egress-proxy] pinned to fixed proxy at 127.0.0.1:10201; OS proxy settings ignored). Since 2026-10-02 ~12:00 local, the chat side of Desktop no longer works: a sent message spins and eventually fails with "message could not be sent", and sessions fail with "Timed out loading session". The Code tab keeps working, and opencodex models still appear in the Code tab picker.

The breakage lines up with a new claude.ai front-end build loading in Desktop (the merged chat/Cowork experience, served remotely, so no app update was needed). The first failed send was 16 minutes after that build first loaded. Picker mode had worked with chat since 2026-09-26.

Turning the picker off (ocx claude desktop picker off, restart Desktop) removes the egress pin, and chat works with zero errors. Turning it back on brings the failures back. Upgrading 2.72.0 → 2.76.0 did not fix it.

Reproduction
  1. macOS, opencodex in first-party mode with ocx claude desktop picker on (status: effective: true, reason: active, trust: trusted).
  2. Claude Desktop 2.19675.0, on an account that has the merged chat/Cowork front end.
  3. Open the chat side (not the Code tab) and send any message.
  4. The message spins, then "message could not be sent". Existing chats fail to load with "Timed out loading session. Check your connection and try again."
  5. Run ocx claude desktop picker off, quit and reopen Desktop. Chat works.
Version
  • opencodex 2.72.0 (when it started), still reproduces on 2.76.0
  • Claude Desktop 2.19675.0, bundled Claude Code 2.1.286
Operating system

macOS 26.6.2 (25G83), arm64

Provider and model

Not model-specific. The failing traffic is Desktop's own claude.ai traffic (chat UI, session loads, feature flags), not routed model requests.

Logs or error output

Desktop claude.ai-web.log (renderer), starting 2026-10-02:

12:16:15 [error] [useSendChannelMessage] send failed [object DOMException]
12:16:57 [warn] [REACT_QUERY_CLIENT] QueryClient error: {"name":"TimeoutError","message":"Timed out loading session. Check your connection and try again."}

Desktop main.log: main-process fetches to claude.ai time out continuously while the picker is active (349 on 10-02, 517 on 10-03 so far):

[warn] [my-access] fetch failed { error: DOMException [TimeoutError]: The operation was aborted due to timeout }
[error] [growthbook] network error: DOMException [TimeoutError]
[error] Failed to check allowlist status: DOMException [TimeoutError]
[warn] [RemotePluginManager] Failed to fetch enabled state; defaulting to all-enabled This operation was aborted

opencodex stdout during the same window: the picker answers some claude.ai requests with 502 (2.72.0: 590 GET + 368 POST 502s in the log; 2.76.0 since this morning: 15 GET + 3 POST 502s):

[claude-picker] picker GET other 502
[claude-picker] picker POST other 502

Timeline (local time):

  • 2026-09-26: picker mode applied. Chat works through the egress proxy.
  • 2026-10-02 ~12:00: new claude.ai web build (asset c219730b0) first loads in Desktop.
  • 2026-10-02 12:16: first failed send. Failures continue all day.
  • 2026-10-02 22:16: Desktop restarted with the picker off: zero timeouts or failed sends afterwards.
  • 2026-10-03 00:13: opencodex auto-updated to 2.76.0, picker back on. Failures resume (latest 08:55 on 10-03).

Plain curl -x http://127.0.0.1:10201 https://claude.ai/ returns quickly with the same status as a direct request, so the listener is up. The failures look specific to the requests the new front end makes.

Redacted configuration
"claudeCode": { "enabled": true, "desktopMode": "first-party", "desktopNativeModels": true, "intercept": { "picker": true } }

Desktop applied profile (Claude-3p/configLibrary, "opencodex-picker"): {"egressProxyUrl":"http://127.0.0.1:10201"}

Checks
  • I searched existing issues and PRs (nothing open about Desktop chat failing under picker mode; #6487 touches picker cleanup and catalog bounds, not passthrough).
  • I removed secrets, tokens and personal data.
Dominant language
TypeScript
Stars
16.9k
Forks
1.3k
Avg merge
8h 13m
Merged PRs (30d)
625

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

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.

More from lidge-jun/opencodex

All issues in lidge-jun/opencodex

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.