5.2 KiB
Troubleshooting
Use cass check first for configuration problems. It validates files, provider/model references, and API key availability.
Missing active API key
Symptom: cass check reports that an environment variable is not set, or chat startup says the API key is not available.
Likely cause: the active provider's api_key is an env reference such as "$OPENAI_API_KEY", but that variable is not set in the current shell.
Fix on macOS/Linux:
export OPENAI_API_KEY=...
cass check
cass
Fix in PowerShell:
$env:OPENAI_API_KEY = "..."
cass check
cass
Invalid API key reference
Symptom: the key is not resolved the way you expect.
Likely cause: Cassady only treats strings that start with $ as environment references. It does not expand partial strings or ${NAME} syntax.
Fix:
{ "api_key": "$OPENAI_API_KEY" }
Provider URL unreachable
Symptom: setup model discovery fails or a turn reports a provider error.
Likely causes:
- wrong
base_url; - network or proxy problem;
- provider outage;
- provider requires a different OpenAI-compatible path.
Fix: verify the base URL in providers.json, retry setup, or enter the model id manually if only /models discovery is failing.
/models discovery fails
Symptom: setup cannot fetch models.
Likely cause: some providers do not expose GET /models, require extra permissions, or return a non-standard shape.
Fix: choose retry if the failure is temporary; otherwise enter the model id manually. Then run cass check.
Unsupported or invalid model id
Symptom: chat starts but the provider rejects the model.
Likely cause: the model id in models.json or config.json is not valid for the provider.
Fix: update the model id with cass setup, edit models.json, or launch with:
cass --model MODEL_ID
Then verify with a small prompt.
Rate limit or authentication errors
Symptom: the assistant says the provider returned an error.
Likely cause: provider-side authentication, quota, billing, or rate limit.
Fix: confirm the API key, provider account status, selected model, and provider dashboard. Cassady forwards provider failures into the chat but cannot resolve account-level issues.
Invalid JSON or unknown config fields
Symptom: cass check reports a parsing or schema error for config.json, providers.json, or models.json.
Likely cause: invalid JSON, comments, trailing commas, misspelled fields, or a field in the wrong file.
Fix: remove comments/trailing commas, compare against Configuration, and run:
cass check
Workspace access denied
Symptom: tool output says a path escapes allowed roots or workspace-edit root.
Likely cause: the active mode is read-only or workspace-edit, and the path resolves outside the launch cwd or bundled docs.
Fix: start from the intended project directory, pass --cwd PATH, or intentionally use --full-access when broad filesystem access is needed.
Shell unavailable or waiting for approval
Symptom: shell is denied or Cassady asks for approval.
Rules:
read-only: shell is unavailable.workspace-edit: shell requires approval.full-access: shell is allowed by policy.
Fix: switch mode with Shift-Tab while idle or launch with the desired access flag.
Shell command failed or timed out
Symptom: shell result includes stderr, non-zero exit code, or timeout.
Likely cause: the command itself failed, the working directory is wrong, dependencies are missing, or the timeout was too short.
Fix: inspect stdout/stderr, verify cwd in /status, and ask Cassady to rerun the smallest relevant command.
Exact-text edit failed
Symptom: edit reports old_text not found, old_text is not unique, or overlapping edits.
Likely cause: the file changed, whitespace differs, line endings differ, or the replacement text is too broad.
Fix: ask Cassady to re-read the file and retry with a smaller unique old_text. For repeated blocks, include nearby unique context.
Binary, large, or unsupported files
Symptom: read/edit output is confusing or fails.
Likely cause: the file is binary, too large for useful display, or not valid UTF-8 for text edits.
Fix: ask Cassady to list metadata or use project-specific tools through approved shell commands. Avoid direct text edits on binary files.
CRLF or line-ending confusion
Symptom: exact-text edits fail even when the text appears to match.
Likely cause: Windows CRLF line endings or invisible whitespace differences.
Fix: re-read the exact target region and preserve the line endings in old_text, or use a smaller unique snippet.
Terminal rendering problems
Symptom: the UI appears garbled or keys do not behave as expected.
Likely cause: unsupported terminal features, redirected stdin/stdout, or platform-specific terminal behavior.
Fix: run Cassady in an interactive terminal. Use cass check for non-interactive validation. Windows runtime polish is planned for a later release.
Setup says it is interactive
Symptom: cass setup fails with setup is interactive; run cass setup in a terminal.
Likely cause: stdin is not a terminal.
Fix: run setup directly in a terminal, not through a non-interactive script or redirected input.