Claude Desktop App — 3 bugs in startup/runtime logs (macOS)
Here's a ready-to-submit bug report:
---
Title: Claude Desktop App — 3 bugs found in startup/runtime logs (macOS)
Environment:
- Claude Desktop App (latest)
- macOS Darwin 25.4.0 (Sequoia)
- Platform: Apple Silicon
---
Bug 1: ANSI escape code leaks into model config API request
The app queries the model config endpoint with a malformed model ID containing an ANSI bold escape sequence:
GET /api/organizations/{org_id}/model_configs/claude-opus-4-6[1m]
→ 404 Not Found
The [1m] is an ANSI SGR bold code that should have been stripped before constructing the API URL. This fires on every app launch / conversation open. Found in claude.ai-web.log.
Expected: Request should target claude-opus-4-6 without the escape sequence.
---
Bug 2: MCP server logout uses name string instead of UUID
When disconnecting MCP servers that were previously removed, the app sends the server's display name instead of its UUID to the logout endpoint:
POST /api/organizations/{org_id}/mcp/logout/puppeteer → 400 invalid_server_id
POST /api/organizations/{org_id}/mcp/logout/google-maps → 400 invalid_server_id
Error message: "Invalid server ID format. Expected UUID or mcpsrv_* tagged ID."
These servers no longer exist in the connectors list, suggesting the app is attempting cleanup on stale references but using the wrong identifier format.
Expected: Either use the server's UUID/mcpsrv_* ID, or gracefully skip cleanup for servers that no longer exist.
---
Bug 3: BuddyBleTransport handler registration race condition
On app startup, a Bluetooth companion feature attempts to report state before the handler is registered:
Uncaught (in promise) Error: Error invoking remote method
'$eipc_message$_..._BuddyBleTransport_$_reportState':
Error: No handler registered for '..._BuddyBleTransport_$_reportState'
This is a startup timing issue — reportState is called before the IPC handler is ready.
Expected: Either defer reportState until the handler is registered, or register the handler before the BLE transport initializes.
---
Additional (minor): USER_CONTENT_RENDERER repeatedly logs "Failed to load language: markdown — falling back to plain text" in claude.ai-web.log. This causes markdown syntax highlighting to silently degrade.
---
None of these are blocking, but they produce noisy logs and the ANSI leak (#1) causes a failed API call on every session.
---
You can paste this into https://github.com/anthropics/claude-code/issues or wherever Anthropic accepts desktop app feedback. Want me to adjust anything?
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗