Agent shows offline
The host's dot is grey in the dashboard sidebar. The agent isn't heartbeating. Walk through these in order.
1. Is the daemon running?
Linux:
sudo systemctl status qorin-agentLook for Active: active (running). If it's inactive (dead) or failed, start it:
sudo systemctl restart qorin-agent
sudo journalctl -u qorin-agent -n 50 --no-pagermacOS:
sudo launchctl print system/dev.qorin.agent | head -30The state = running line is what you want. If it's missing or exit code = …, bootout + bootstrap:
sudo launchctl bootout system/dev.qorin.agent
sudo launchctl bootstrap system /Library/LaunchDaemons/dev.qorin.agent.plist
sudo log show --predicate 'subsystem == "dev.qorin.agent"' --last 5m2. Is the daemon authenticated?
A daemon without an agent token can't open the WebSocket. Check:
sudo qorin-agent doctorThe output includes a daemon.authenticated: yes/no line. If no:
sudo qorin-agent loginVisit the URL, sign in, approve. The daemon picks up the new token within seconds.
3. Is the network egress OK?
The daemon opens outbound HTTPS to api.qorin.dev. No inbound ports needed. From the host:
curl -sS -o /dev/null -w "%{http_code}\n" https://api.qorin.dev/health
# expect: 200If you see TLS errors on a Linux host behind a corporate proxy, the daemon respects HTTPS_PROXY/NO_PROXY env vars set in /etc/systemd/system/qorin-agent.service.d/override.conf.
4. Did the token get revoked?
In the dashboard, click the host → if it's been revoked by an operator (or by you) the row says "revoked". Re-run sudo qorin-agent login to mint a fresh one.
5. Is there a known incident?
status.qorin.dev lists current and recent incidents. If api.qorin.dev is down everyone's agents flip offline simultaneously.
Still stuck?
Open a support ticket from the dashboard. Include:
- OS + arch (
uname -a) - Agent version (
qorin-agent --version) - Last 30 lines of journal or launchctl log
- Whether
curl https://api.qorin.dev/healthworked
We usually reply within one business day.