Troubleshooting
Symptoms first. Each entry says what the state actually is, not just what to type.
Start by getting the daemon's own view:
saylek status
Add --watch to live-tail it while something is settling.
Install and startup
saylek: command not found
The binary installed to ~/.saylek/bin but that directory is not on your PATH. Open a
new shell first, since the installer edits your shell profile and the current session will
not have picked it up. If it still fails, add ~/.saylek/bin to PATH yourself.
The daemon is not running
saylek start
The installer registers a user-level service, so this is normally only needed after a manual stop.
First call
model_not_found
The daemon is up but has no model loaded. A fresh install is expected to be in this state.
saylek gpu wizard # guided: pick and fetch a model
saylek model ls # confirm it was discovered
If you dropped a .gguf into ~/.saylek/models/ yourself, tell the daemon to look again:
saylek model rescan
HTTP 503, no inference backend compiled in
You are running a binary built with no inference backend. This only happens on a
from-source build: cargo build --release without a --features flag compiles, but the
result cannot serve.
Rebuild with a backend that matches your hardware: cpu (portable), cuda (NVIDIA), or
metal (Apple Silicon). Released binaries already carry one.
Requests fail and no Host is available
Your Circle can only answer while a Host in it is online. If none is, calls for models you
cannot serve locally will fail until one comes back. Check with saylek status.
Every request fails after you enabled local-only
This is local-only working as designed, not a bug. Local-only stops Saylek routing your request to another member: it serves locally or it fails. If your machine cannot serve the model you asked for, every such request now fails.
(One scope note, since it surprises people in the other direction: local-only governs Saylek's own routing. It does not override a proxy upstream you configured yourself, which still receives requests that resolve to it.)
Either load a model you can serve locally, or turn local-only back off in
~/.saylek/config.toml:
[federation]
local_only = false
See Privacy and egress.
Nothing egresses even though local-only is off
Check that you still belong to a Circle. With zero live memberships the system fails closed and keeps everything local, by design: leaving your last Circle withdraws the egress default.
saylek circles list
Remember that this is the offline, device-local view. It reports what this machine holds credentials for, not every Circle you belong to.
Connecting an app
401 or 403 from the hosted endpoint
Your API key is wrong, revoked, or not being sent. A key's secret is shown once, at creation, so if you did not save it, create a new one rather than hunting for it.
Claude Code ignores your key
ANTHROPIC_API_KEY overrides ANTHROPIC_AUTH_TOKEN. Unset it:
unset ANTHROPIC_API_KEY
404 on the hosted endpoint
Almost always the /v1 suffix, which differs by dialect and is easy to cross over:
| Client | Base URL |
|---|---|
| OpenAI-compatible | https://api.saylek.com/v1 |
| Anthropic clients | https://api.saylek.com (the client appends /v1/messages itself) |
The model id is rejected
Saylek carries the Pool-advertised model id verbatim. There are no claude-* or gpt-*
aliases. List what your Circle is actually serving and use one of those ids:
curl https://api.saylek.com/v1/models -H "Authorization: Bearer YOUR_API_KEY"
Web search finds nothing, and nothing errors
A tool your client runs on its own machine is fine. A tool the model provider runs is
not: a Host serves a model, not a search engine. Claude Code's WebSearch and
WebFetch are provider-run, so they hand back an empty result set with no error, and the
answer arrives with no sources and no warning.
Replace them with a search tool your client runs itself: Web search.
Hosting
You are hosting but your machine shows as offline
Check that the daemon is running and reachable, and that saylek status reports it
connected. Hosting is a separate explicit step from consuming: if you never ran
saylek host, your machine is not offering capacity and is not supposed to appear as a
Host.
Your own work feels slow while serving
Your own work keeps priority on your own GPU. If that is not what you are seeing, capture
saylek status --watch output and tell us, because that is a defect rather than a setting.
Still stuck
Reach us from /support. Include what you ran, what you expected, and what
happened, plus the output of saylek status.
Next steps
- Quickstart: the first-run path.
- Privacy and egress: local-only, in full.
- CLI reference: the command tables.
Last checked 2026-07-24 · read as markdown at /docs/troubleshooting.md