Troubleshooting
This page collects common CCX Desktop issues and resolution steps.
For first-run setup or the full user flow, see CCX Desktop.
Startup failures
Binary not found
Symptom: Starting the service reports that the CCX binary is missing.
Resolution:
If you are running from source, build the backend first:
bashcd backend-go && make buildConfirm CCX Desktop can locate
ccx-go.If the build output path changed, reopen CCX Desktop and try again.
Port conflict
Symptom: Health check times out after startup, with errors such as connection refused or a port conflict.
Resolution:
Check the process using the port:
bash# macOS / Linux lsof -i :3688 # Windows netstat -ano | findstr :3688Stop the conflicting process or change
PORTin Environment Params, then restart the service.
Health check timeout
Symptom: The backend process starts, but http://localhost:3688/health does not become healthy for a long time.
Possible causes:
- Incorrect
.envvalues - Bad channel configuration
- Slow first-run initialization
Resolution: Review errors in Gateway Monitor or Log Viewer and fix configuration step by step.
Permission denied
Symptom: The error includes permission denied.
Resolution:
# macOS / Linux
chmod +x backend-go/ccx-go
# Windows
Run Desktop as administratorKeys and access
Base URL root vs /v1
- Claude Code: use
http://localhost:3688 - Codex CLI / Codex App: use
http://localhost:3688/v1 - OpenCode: use
http://localhost:3688/v1
This is a common source of mistakes. Always match the Base URL to the client type.
401 Unauthorized
Check in this order:
- The client API key matches CCX
PROXY_ACCESS_KEY - The running CCX Desktop instance was started with the expected
PROXY_ACCESS_KEY - No older environment variable is overriding the current configuration
- You did not enter the upstream provider API key by mistake
Environment overrides prevent config from taking effect
If the client CLI already has these variables set, they may override agent configuration:
ANTHROPIC_API_KEYANTHROPIC_BASE_URLOPENAI_API_KEYOPENAI_BASE_URL
Check them in the terminal:
printenv ANTHROPIC_API_KEY
printenv ANTHROPIC_BASE_URL
printenv OPENAI_API_KEY
printenv OPENAI_BASE_URLIf stale values exist, clear them or test again in a clean shell session.
localhost does not work on Windows
If the client runs inside cmd, PowerShell, WSL, or Docker, localhost may not reach CCX.
Use the Windows host LAN IPv4 address instead, for example:
http://192.168.1.23:3688Keep the client API key set to PROXY_ACCESS_KEY.
Configuration problems
Agent configuration applied but not effective
- Confirm the gateway is running and the port is correct.
- Confirm the target configuration file path matches the client tool.
- Restart the client and send a test prompt.
- If it still fails, remove old environment variables and try again.
Channel added but requests fail
- Confirm the upstream API key is correct.
- Confirm the upstream Base URL is reachable.
- Check whether the model allowlist or model mapping covers the requested model.
- Review detailed errors in Log Viewer or the web UI.
Request does not reach the expected endpoint
Different clients use different request paths:
- Claude Code:
/v1/messages - Codex CLI / Codex App:
/v1/responses - OpenCode:
/v1/chat/completions
If the log path does not match expectations, the client is not connected to CCX in the intended way. Recheck agent configuration and client provider settings.
Auto update issues
macOS shows an unverified developer warning
Open System Settings → Privacy & Security, find the blocked app, and click Open Anyway.
Linux AppImage cannot update
Only AppImage supports in-app auto updates. If you installed through deb or rpm packages:
# deb
sudo apt update && sudo apt upgrade ccx-desktop
# rpm
sudo dnf update ccx-desktopUpdate download fails
The GitHub installer build checks and downloads updates from GitHub Releases.
Troubleshooting steps:
- Check network connectivity.
- If you use a proxy, confirm GitHub Releases is reachable.
- If needed, download the update manually from the Releases page.
The Microsoft Store build is updated by the Store. If Store updates fail, retry from the library page or reinstall.
Other issues
Window position or size is not restored
CCX Desktop saves window state to the data directory.
If the saved state becomes invalid:
- Close Desktop.
- Delete
window-state.jsonin the data directory. - Open the app again.
Launch at login does not work
- macOS: check System Settings → General → Login Items
- Windows: check Task Manager → Startup
- Linux: check your desktop environment autostart settings
Web UI is not accessible
- Confirm the gateway is running.
- Confirm
ENABLE_WEB_UIistrue. - Try opening
http://localhost:3688directly in a browser.