Troubleshooting
Sync issues
Section titled “Sync issues””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:
devrecall setupor just initialize the config + database:
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:
devrecall auth slackSync is slow on first run
Section titled “Sync is slow on first run”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.
LLM issues
Section titled “LLM issues””Ollama not running”
Section titled “”Ollama not running””ollama serve # start Ollamaollama list # confirm your model is pulledIf you don’t want to use Ollama, switch to BYOK:
devrecall config set llm.provider openaidevrecall auth openai“OpenAI API quota exhausted”
Section titled ““OpenAI API quota exhausted””DevRecall falls back through your configured chain. Check what happened:
devrecall statusTo 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).
Port conflicts
Section titled “Port conflicts”Port 3725 already in use
Section titled “Port 3725 already in use”Another DevRecall instance is probably running. Check:
curl -s http://127.0.0.1:3725/api/statusIf something else is on the port:
devrecall config set server.port 9876devrecall serve --port 9876The desktop app reads server.port from the config and will follow
the new port automatically.
Database issues
Section titled “Database issues””database is locked”
Section titled “”database is locked””SQLite uses WAL mode, but a hung process can still hold a lock. Find it:
lsof ~/.devrecall/devrecall.dbKill the process and retry. If devrecall serve is the holder, use
devrecall daemon instead of multiple serve instances.
Database is huge
Section titled “Database is huge”Periodic activity accumulates. Prune old raw activities while keeping summaries:
devrecall prune --older-than 1y --keep-summariesStorage is roughly 50 MB / year before pruning, much less after.
Update issues
Section titled “Update issues””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:
devrecall updateThis 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:
brew update && brew upgrade devrecallThat 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:
ls -la "$(which devrecall)" # → should point into /Applications/DevRecall.app/...brew list | grep devrecall # → if both `devrecall` AND `devrecall-cli` appear, that's the shadowdevrecall --version # → reports the stale version (often 0.1.x where x < 7)/Applications/DevRecall.app/Contents/MacOS/devrecall --versionFix:
brew uninstall pavelpilyak/devrecall/devrecall-clibrew reinstall --cask devrecall # re-runs the binary symlink stanzadevrecall --version # should now match the latest caskAfter that, restart Claude Code (or any tool that spawned the old
devrecall mcp) so it picks up the new binary.
Privacy / data residency
Section titled “Privacy / data residency””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.
Where to file bugs
Section titled “Where to file bugs”github.com/pavelpilyak/devrecall/issues
Include:
devrecall --versiondevrecall statusoutput- The exact command and the full error