Skip to content
saylek

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:

ClientBase URL
OpenAI-compatiblehttps://api.saylek.com/v1
Anthropic clientshttps://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

Last checked 2026-07-24 · read as markdown at /docs/troubleshooting.md