Troubleshooting
Common issues and their solutions.For detailed error code reference and recovery strategies, see Error Codes.
Installation Issues
Config File Not Found After npm Install
Symptom:--ignore-scripts flag.
Solution:
PATH Not Updated
Symptom:ccs command not found after install.
Solution:
- Restart your terminal
- Or manually add to PATH:
- macOS/Linux: Add
~/.local/binto PATH - Windows: Add
%USERPROFILE%\.ccsto PATH
- macOS/Linux: Add
Windows-Specific
PowerShell Execution Policy
Error: “cannot be loaded because running scripts is disabled” Solution:Claude CLI Not Found
Claude CLI in Non-Standard Location
Set CCS_CLAUDE_PATH
- Windows
- macOS/Linux
Configuration Issues
Profile Not Found
Error:Profile 'foo' not found in ~/.ccs/config.yaml
Solution: Add profile to config:
Settings File Missing
Error:Settings file not found: ~/.ccs/foo.settings.json
Solution: Create the settings file or fix path in config.
Default Profile Missing
Error:Profile 'default' not found
Solution: Add default profile:
Codex config.toml Cannot Be Parsed
If Codex writes a model migration and joins it to the next TOML table header, the Control Center disables structured controls to avoid overwriting the invalid file. Solution: Openccs config, select Codex config.toml, then choose Preview one-newline repair. CCS creates an unsaved editor draft that inserts only the missing newline. Review the diff and select Save to write it. The save uses the file version observed when the draft was created, so it refuses a concurrent change instead of overwriting it.
The preview appears only for this exact migration-table boundary. For any other TOML error, correct the raw TOML manually and save it after the validation message clears.
Quota Issues
Quota Shows “N/A (fetch unavailable)”
When quota cannot be fetched, CCS displays “N/A” instead of a percentage. Causes:- Network connectivity issues
- API rate limiting (5-second timeout)
- Account tier lacks quota API access (403 Forbidden)
- Token expired (401 Unauthorized)
- Check connectivity:
- Run diagnostics with verbose mode:
- Verify account tier: Some free-tier accounts don’t have quota API access. Upgrade to paid tier if needed.
- Refresh authentication:
Quota Fetch Error Codes
Quota Shows 0 But Account Not Exhausted
Possible causes:- Quota not yet refreshed (30-second cache TTL)
- All models at 0% (account exhausted)
- Fetch returned null (treated as unknown)
null= fetch failed → shows “N/A”0= quota exhausted → shows “0%”
Account Skipped in Rotation
Accounts are skipped when:- Quota below threshold (default: 5%)
- Account is paused manually
- Account in cooldown (5 minutes after exhaustion)
- Quota fetch returned null
Common Problems
Claude CLI Not Found
Solution: Install from official documentation.Permission Denied
Debug Mode
Enable verbose output:- Config file being read
- Profile being selected
- Settings file being used
- Command being executed
Disable Colors
Getting Help
- Check GitHub Issues
- Create new issue with:
- Operating system
- CCS version (
ccs --version) - Exact error message
- Steps to reproduce
Network Proxy Support
Available since v7.37.0 - CLIProxy respects standard proxy environment variables for network requests.
- Binary downloads (CLIProxyAPI installation)
- API requests to OAuth providers
- Model catalog sync
Configuration
Set standard proxy environment variables:Troubleshooting Proxy Issues
Connection failures behind proxy:OAuth Callback Tracing
When an OAuth login fails (URL not displayed, callback never observed, token exchange error, etc.), CCS now emits branch-specific diagnostics instead of a generic “token not found” message. For deep debugging, enable the opt-in JSONL file sink:- Log path:
~/.ccs/logs/oauth-YYYYMMDD.log(mode0o600, rotated per day) - Format: JSONL, one event per line
- Redaction: tokens, codes, and PKCE verifiers are stripped before write
- Sinks: in-memory ring buffer (always on), verbose stdout (with
CCS_DEBUG=1), file sink (opt-in viaCCS_OAUTH_LOG_FILE=1)
