Skip to content

Troubleshooting

”config not found — run devrecall config init first”

Section titled “”config not found — run devrecall config init first””

You’re running a command before initial setup. Either run the wizard:

Terminal window
devrecall setup

or just initialize the config + database:

Terminal window
devrecall setup --quick

“Slack sync failed — token may have expired”

Section titled ““Slack sync failed — token may have expired””

Slack tokens occasionally need re-authorization (e.g., after a workspace policy change). Re-run:

Terminal window
devrecall auth slack

First sync pulls sync.initial_lookback_days (default 90 days) of history per source. After that, syncs are incremental and fast.

For Git, large monorepos with deep history can be slow on the first walk — narrow your scope with explicit git.repos instead of broad scan_paths.

Terminal window
ollama serve # start Ollama
ollama list # confirm your model is pulled

If you don’t want to use Ollama, switch to BYOK:

Terminal window
devrecall config set llm.provider openai
devrecall auth openai

DevRecall falls back through your configured chain. Check what happened:

Terminal window
devrecall status

To unblock immediately, configure a fallback (local Ollama is free):

{
"llm": {
"provider": "openai",
"fallback": [{ "provider": "ollama", "model": "gemma4" }]
}
}

Standups read like a list, not natural language

Section titled “Standups read like a list, not natural language”

You either don’t have an LLM configured, or all configured providers fell through to the template-based fallback. Confirm with devrecall status. To always force natural language, configure at least one working LLM (local Ollama is free).

Another DevRecall instance is probably running. Check:

Terminal window
curl -s http://127.0.0.1:3725/api/status

If something else is on the port:

Terminal window
devrecall config set server.port 9876
devrecall serve --port 9876

The desktop app reads server.port from the config and will follow the new port automatically.

SQLite uses WAL mode, but a hung process can still hold a lock. Find it:

Terminal window
lsof ~/.devrecall/devrecall.db

Kill the process and retry. If devrecall serve is the holder, use devrecall daemon instead of multiple serve instances.

Periodic activity accumulates. Prune old raw activities while keeping summaries:

Terminal window
devrecall prune --older-than 1y --keep-summaries

Storage is roughly 50 MB / year before pruning, much less after.

”devrecall is out of date and cannot run”

Section titled “”devrecall is out of date and cannot run””

A critical security update has shipped and the relay’s kill switch fired. The fix is the message — run:

Terminal window
devrecall update

This is the only command exempt from the kill switch.

Auto-update fails on macOS Homebrew install

Section titled “Auto-update fails on macOS Homebrew install”

Homebrew-installed binaries are managed by Homebrew. devrecall update detects the cask install and hands off to Homebrew automatically, but you can also run it directly:

Terminal window
brew update && brew upgrade devrecall

That single command updates both the GUI and the bundled CLI. On Linuxbrew (CLI-only), use brew upgrade devrecall-cli instead.

brew upgrade devrecall says “up to date” but the CLI is still old

Section titled “brew upgrade devrecall says “up to date” but the CLI is still old”

Happens if you installed DevRecall before 2026-05-08, when the cask depended on a separate devrecall-cli formula. From v0.1.7 onward the cask bundles the CLI inside the .app, but the old formula’s symlink in $(brew --prefix)/bin/devrecall keeps shadowing the bundled one. The cask’s .app updates cleanly on every brew upgrade; the bin/devrecall symlink stays pinned at whatever formula version you last installed.

Diagnose:

Terminal window
ls -la "$(which devrecall)" # → should point into /Applications/DevRecall.app/...
brew list | grep devrecall # → if both `devrecall` AND `devrecall-cli` appear, that's the shadow
devrecall --version # → reports the stale version (often 0.1.x where x < 7)
/Applications/DevRecall.app/Contents/MacOS/devrecall --version

Fix:

Terminal window
brew uninstall pavelpilyak/devrecall/devrecall-cli
brew reinstall --cask devrecall # re-runs the binary symlink stanza
devrecall --version # should now match the latest cask

After that, restart Claude Code (or any tool that spawned the old devrecall mcp) so it picks up the new binary.

”Did anything get sent to a DevRecall server?”

Section titled “”Did anything get sent to a DevRecall server?””

Two short answers:

  • OAuth callback for Slack, Google, Jira, Linear — yes, the auth code passes through the relay (deleted within 60s, see Privacy model).
  • Version kill-switch check — once an hour, the CLI asks the relay whether the running build has been flagged unsafe. No identifying data is sent.
  • Telemetry — none. DevRecall does not collect telemetry.

LLM calls go directly to the provider (BYOK) or localhost:11434 (Ollama). DevRecall never proxies them.

github.com/pavelpilyak/devrecall/issues

Include:

  • devrecall --version
  • devrecall status output
  • The exact command and the full error