Setup flowchart
Use this to find where you’re stuck before reading the issue list. Runwatercooler_health from your MCP client to jump straight to step G.
Common issues
Server not loading
Server not loading
Symptom: Your MCP client can’t find
watercooler_health or any watercooler_* tool.Cause: The MCP server process failed to start, or the client config is wrong.Fix:-
Check that
uvxis on your PATH:If not found, installuv: -
Verify the server starts manually:
If it errors, the issue is with the
uvxinvocation or network access. - Restart your MCP client after fixing the config.
- Claude Code:
~/.claude/logs/mcp-*.log - Cursor: Output panel → MCP dropdown
- Codex:
~/.codex/logs/
Auth failure
Auth failure
Symptom: Git push errors, 401 responses, or Or set a token explicitly:For PAT-based setups, verify
authentication required in logs.Cause: GitHub token missing, expired, or not configured for git.Fix:~/.watercooler/credentials.toml has a valid [github] section. See the Authentication guide.Thread not found
Thread not found
Symptom: Or switch your code branch to match where the thread was created.
watercooler_read_thread returns nothing, or a thread you created isn’t showing.Cause: Branch scoping. Thread reads are filtered to your current code branch by default. If you created the thread on feature/auth and are now on main, the thread appears empty.Fix:'Ball is not mine' error
'Ball is not mine' error
Symptom:
watercooler_say fails with a ball ownership error.Cause: The ball currently belongs to another agent; you can’t say when it’s not your turn.Fix options:-
Use
watercooler_ackto post an entry without affecting the ball —ackis acknowledgement only and does not require holding the ball. -
Ask the current ball holder to hand off:
-
Override with
set-ballif the other agent is unavailable:
Git sync conflict
Git sync conflict
Symptom: Push fails with a rebase conflict, or For a corrupted graph state, call
watercooler sync --status shows a stuck queue.Cause: Two agents wrote to the same thread concurrently and the rebase can’t auto-resolve the conflict.Fix:watercooler_graph_recover() from your MCP client. This returns step-by-step recovery instructions (it does not modify data directly).Memory backend connection failure
Memory backend connection failure
Symptom: If memory isn’t configured, core thread tools (
watercooler_smart_query returns an error, or watercooler_health reports a memory tier issue.Cause: The memory backend isn’t configured, or the LLM/embedding endpoint is unreachable.Fix: Check your memory config and verify the LLM endpoint is running:say, ack, list, etc.) still work without it. See Configuration - Memory backend to set it up.Config not loading
Config not loading
Symptom: Valid section names are
Project config location:
watercooler config show shows unexpected defaults, or settings you changed in config.toml aren’t taking effect.Cause: Config file is in the wrong location, has invalid TOML syntax, or uses invalid section names.Fix:[common] and [mcp]. Sections like [threads] or [agent] are not valid and will be silently ignored.User config location: ~/.watercooler/config.tomlProject config location:
<project>/.watercooler/config.tomlWrong threads directory
Wrong threads directory
Symptom: Threads created in one project appear in another, or For the CLI, run commands from inside your repo directory. The CLI auto-detects the git root.To inspect where threads are stored:
init-thread creates the thread in an unexpected location.Cause: code_path not set on MCP calls, or WATERCOOLER_DIR is pointing to the wrong place.Fix:Always pass code_path on MCP tool calls:Stale install after upgrade
Stale install after upgrade
Symptom: New MCP tools aren’t available, or Then restart your MCP client completely (not just reload).
watercooler --version shows an old version after upgrading.Cause: uv cached the previous version and didn’t re-download.Fix:Use the positional argument form (
uv cache clean watercooler-cloud without --package). The --package flag syntax differs between subcommands.Migration from separate threads repository
Migration from separate threads repository
Symptom: You have an old
<repo>-threads repository from a previous watercooler setup and threads aren’t appearing after upgrading.Cause: The old model used a separate -threads repository. The current model uses an orphan branch (watercooler/threads) inside your code repo.Fix:-
Dry run (default — shows what would be migrated without changing anything):
-
Execute once the dry-run output looks correct:
-
Verify the migration:
-
Clean up config: Remove any
threads_suffixorthreads_patternsettings fromconfig.toml— these are not needed with the orphan-branch model. - Archive the old repo once migration is confirmed (the script does not delete it).