Troubleshooting
Companion tray says "OFFLINE"
The agent isn't responding to the local /healthz probe. Steps:
- Open Preferences, then the Agent panel. Confirm Status: Stopped, and try Restart.
- Or from a terminal:
locai statusto see what's going on, thenlocai restart. - Alternatively, restart the service manually:
- macOS:
launchctl kickstart -k gui/$(id -u)/uk.co.locai.link.companion - Linux:
systemctl --user restart locai-link-companion.service
- macOS:
- Check the logs (Preferences, Advanced, Logs). Common issues: model file corrupted mid-download (delete the partial and redownload), or the Zenoh transport can't reach the router (firewall; see the next section).
Network panel says "Disconnected"
Agent is up but can't reach Locai Control's Zenoh router. Common causes:
- Corporate firewall blocking outbound TCP 7448. The port Zenoh uses. Ask your network admin to allow outbound TCP to
zenoh.locai.co.uk:7448. - TLS interception (Zscaler, corporate proxy, some antivirus). The Zenoh TLS handshake fails because a middlebox is re-signing certificates. Requires the middlebox's CA to be trusted or an exception for
zenoh.locai.co.uk. - VPN in the way. Try disconnecting the VPN and see if Network flips to Connected.
Test connectivity directly:
nc -zv zenoh.locai.co.uk 7448
succeeded! means the firewall isn't blocking; it's likely a TLS or router-side issue.
Connection refused or a hang means a firewall.
First-run setup fails at registration
- "Invalid registration key". The key is used or expired. Click Retry to mint a fresh one (or, on a headless device, generate a new key in the Register Device dialog).
- "Registration failed: network". See the firewall notes above.
api.locai.co.ukon HTTPS (443) needs to be reachable.
Companion doesn't appear in the menu bar after install
macOS:
- Confirm the service is loaded:
launchctl list | grep locai. You should see one entry:uk.co.locai.link.companion. - If missing, try starting manually:
launchctl kickstart -k gui/$(id -u)/uk.co.locai.link.companion(orlocai start). - If the process starts but no tray icon appears, log out and back in. macOS occasionally needs a fresh session to attach the icon.
Linux:
systemctl --user status locai-link-companion.serviceshould showactive (running).- Confirm your desktop environment supports StatusNotifier / SNI tray icons. GNOME needs the AppIndicator extension; KDE Plasma has it built-in. Sway and i3 don't have a tray by default (you'll need
waybarorpolybarwith tray support).
Model download is stuck at 0%
- Open Preferences, then Models. Find the row and click Cancel.
- Wait a second, then re-trigger the deploy from Locai Control. First-attempt hangs are usually a transient network issue or the runtime not being fully warm; retrying almost always works.
- If a "Queued" row has been sitting for over 5 minutes, the runtime automatically flips it to Failed (Control's dispatch was likely lost). Cancel and redeploy.
Device appears offline in Control right after starting
The device reports online only once its command channel is fully ready. On slow networks this can take up to roughly 5 seconds after the agent starts. If the device remains offline for longer, check your network connection and restart the agent from the companion's Preferences.
Duplicate companion icon in the tray
Locai Link includes a single-instance guard (since 1.2.0) that prevents a second companion from opening: launching the app again focuses the existing window. If you still see duplicate icons, log out and back in to clear the stale process.
"Device shows Version unknown in Control"
Fixed in v1.0.19+. If you're on an older release, restart the agent (Preferences, Advanced, Restart, or launchctl kickstart -k … as above) and Control picks up the version from the next heartbeat.
Diagnostics for support
When reporting an issue, attach the log file(s) — the quickest way to find them is Preferences → Advanced → Logs:
- macOS (desktop):
/Library/Locai/logs/link.*.log - Linux (desktop):
~/.local/share/locai/logs/link.*.log - Headless installs:
logs/service.logunder the install root on macOS and Windows; on Linux,journalctl --user -u locai-link-headless.service
Also include the output of:
curl -s http://127.0.0.1:20505/healthz | jq . # agent health snapshot
curl -s http://127.0.0.1:20505/models | jq . # models list
Both endpoints are loopback-only; nothing from outside your machine can reach them.