Skip to content

Troubleshooting

Solutions for common issues when installing, configuring, or using Council.

Symptom: Shell reports command not found: council after installation.

Cause: pnpm global bin directory is not in your PATH.

Solution:

  1. Find your pnpm global bin path:
Terminal window
pnpm bin -g
  1. Add it to your PATH (in ~/.zshrc, ~/.bashrc, or equivalent):
Terminal window
export PATH="$(pnpm bin -g):$PATH"
  1. Reload your shell:
Terminal window
source ~/.zshrc # or ~/.bashrc

Symptom: council convene exits with code 2 and error NOT_AUTHENTICATED.

Cause: GitHub Copilot is not authenticated or the session expired.

Solution:

  1. Verify Copilot subscription:
Terminal window
gh copilot status
  1. Re-authenticate:
Terminal window
gh auth login
  1. Verify Council detects Copilot:
Terminal window
council doctor

Look for:

✓ GitHub Copilot: connected

Still failing? Check COPILOT_CLI_PATH override:

Terminal window
unset COPILOT_CLI_PATH
council doctor

Symptom: Changes to ~/.council/config.yaml are ignored.

Cause:

  1. Syntax error in YAML (invalid indentation, missing colons)
  2. Config cached by a long-running process
  3. CLI flags override config file

Solution:

  1. Validate YAML syntax:
Terminal window
cat ~/.council/config.yaml | yq eval
# (install yq: brew install yq)
  1. Check active config:
Terminal window
council config get
  1. Override with CLI flags for testing:
Terminal window
council convene "Test topic" --panel tech-review --max-rounds 5

Symptom: council config set <key> <value> fails with “Invalid key.”

Cause: Typo in key name or unsupported nesting.

Solution: Use dot notation for nested keys:

Terminal window
# ✅ Correct
council config set defaults.maxRounds 5
council config set documents.aiExtraction ask
# ❌ Incorrect
council config set maxRounds 5 # Missing 'defaults.' prefix

See: Configuration Reference


Symptom: council convene my-panel fails with “Panel template ‘my-panel’ not found.”

Cause:

  1. Panel file doesn’t exist
  2. Typo in panel name
  3. Panel file has syntax error

Solution:

  1. List available panels:
Terminal window
council panel list
  1. Check user panels:
Terminal window
ls ~/Council/panels/
  1. Validate panel YAML syntax:
Terminal window
cat ~/Council/panels/my-panel.yaml | yq eval

Tip: Panel names are case-sensitive and must match the file name (without .yaml extension).


Symptom: Error: “Expert ‘security’ is not in this panel.”

Cause: Panel YAML references an expert slug that doesn’t exist in ~/Council/experts/.

Solution:

  1. List available experts:
Terminal window
council expert list
  1. Create the missing expert:
Terminal window
# Copy a template or define manually
cp examples/security-expert.yaml ~/Council/experts/security.yaml
  1. Check panel YAML references:
Terminal window
cat ~/Council/panels/tech-review.yaml
# Ensure `experts:` list matches available expert slugs

Symptom: “duplicate expert slug ‘cto’ — slugs must be unique within a panel”

Cause: Panel YAML lists the same expert slug twice (or two experts with the same slug).

Solution: Edit panel YAML and remove duplicates:

experts:
- cto
- cto # ❌ Duplicate

Fix:

experts:
- cto
- cfo # ✅ Unique slugs

Symptom: council docs review <panel> lists files as “unsupported format.”

Cause: File extension is not in config.expert.supportedFormats or no native extractor exists.

Solutions:

  1. Check supported formats:
Terminal window
council docs formats
  1. Add extension to supported list:
Terminal window
council config set expert.supportedFormats '[".md",".txt",".pdf",".custom"]'
  1. Enable AI extraction (experimental):
Terminal window
council config set documents.aiExtraction ask
council docs extract <panel>

See: Document Formats


Symptom: Error: “File exceeds maximum size (50 MB): oversize-file”

Cause: Document exceeds config.documents.maxFileSizeMB limit.

Solution: Increase the limit:

Terminal window
council config set documents.maxFileSizeMB 100

Range: 1–500 MB

Alternative: Split the document or summarize it into a smaller file.


Symptom: council docs extract prompts for every file, slowing down corpus building.

Cause: documents.aiExtraction is set to ask.

Solution: Switch to auto for batch processing:

Terminal window
council config set documents.aiExtraction auto
council docs extract <panel>

Revert to ask or off after processing if desired.


Symptom: Debates take minutes per response.

Possible Causes:

  1. Large document corpus (persona expert indexes huge files)
  2. High maxWordsPerResponse (forces longer responses)
  3. Network latency to GitHub Copilot API
  4. Rate limiting

Solutions:

  1. Reduce response length:
Terminal window
council config set defaults.maxWordsPerResponse 150
  1. Prune document corpus:
Terminal window
# Check corpus size
council docs doctor <panel>
# Remove or archive old documents
  1. Check network:
Terminal window
council doctor
# Look for "Network: reachable" status
  1. Check rate limits:
Terminal window
gh copilot status
# Look for usage/quota info

Symptom: council convene exits with code 3 and NETWORK or RATE_LIMITED error.

Cause:

  1. No internet connection
  2. GitHub API unreachable
  3. Rate limit exceeded

Solutions:

  1. Check connectivity:
Terminal window
ping github.com
  1. Retry after rate limit resets:
Terminal window
# Wait a few minutes, then retry
council convene "Review request" --panel tech-review
  1. Use --max-rounds to reduce API calls:
Terminal window
council convene "Quick review" --panel tech-review --max-rounds 2

See: Exit Codes


Symptom: Terminal shows ANSI escape codes as literal text, or no color.

Cause:

  1. Terminal doesn’t support ANSI codes (TERM=dumb)
  2. Output piped to file or less
  3. NO_COLOR environment variable set

Solutions:

  1. Force plain output:
Terminal window
council convene "Review request" --panel tech-review --format plain
  1. Disable color:
Terminal window
export NO_COLOR=1
council convene "Review request" --panel tech-review
  1. Use ASCII-only charset:
Terminal window
export COUNCIL_ASCII=1
council convene "Review request" --panel tech-review

See: Environment Variables


Symptom: Boxes, checkmarks, or progress indicators show as ? or broken glyphs.

Cause: Terminal font doesn’t support Unicode.

Solution:

  1. Force ASCII charset:
Terminal window
export COUNCIL_ASCII=1
council convene "Review request" --panel tech-review
  1. Use a modern terminal font (e.g., JetBrains Mono, Fira Code, Cascadia Code).

Council logs detailed errors to ~/.council/logs/. Check there first when troubleshooting.

View recent errors:

Terminal window
tail -f ~/.council/logs/error.log

Terminal window
council doctor

Output includes:

  • GitHub Copilot connection status
  • Config file validity
  • Database health
  • Network reachability
  • Installed version

Nuclear option: Delete runtime directory and start fresh.

Terminal window
# Backup first!
cp -r ~/.council ~/.council.backup
# Reset
rm -rf ~/.council
council config get # Regenerates defaults

  1. Check logs:
Terminal window
cat ~/.council/logs/error.log
  1. Run diagnostics:
Terminal window
council doctor > diagnostics.txt
  1. Open an issue: Include diagnostics, error logs, and reproduction steps.