Skip to Content
DocumentationTroubleshootingTroubleshooting overview

Troubleshooting

Start here when something isn’t working. Most problems fall into one of four buckets.

If you use the desktop app and Hub won’t start, read its startup screen first. It names the problem — Docker missing, Docker without permission, or a service that failed — and offers a matching button. See Running Companion Hub.

First commands

Whatever the symptom, these tell you where the problem is:

cihub doctor

Checks the machine and the Hub’s identity in one pass: Docker and Compose, the env file and data folder, the tunnel token, the device ID, the operator account, CI Account registration, Docker networks, and whether containers can reach services on the host, such as Ollama. It starts with a box that names the Hub it checks. It exits with status 1 when it finds a failure. See What cihub doctor checks.

cihub status

Shows the Hub containers, the dashboard address, the Cloudflare tunnel state, and the Tailscale address. If Docker isn’t reachable, it prints Docker is not running or not reachable.

cihub app list

Lists every container on the machine, with its status and ports. If Hub is healthy but one app misbehaves, find its container name here, then read its logs with cihub app logs <container-name>.

Triage flow

Run cihub doctor first; each answer sends you to one page in this section.

What cihub doctor checks

Each line of the report is one check. A red box means at least one line failed. A yellow box means doctor found something worth knowing but nothing that stops the stack from running, such as a Hub that isn’t paired yet.

LineWhat it tells youIf it isn’t OK
Docker, Docker ComposeThe Docker CLI can reach the daemon, and the Compose plugin is installedDocker issues
Env file, Root folder, Compose filesThe Hub’s configuration and data folder existRun cihub setup, then cihub up. A missing env file or root folder before your first start is expected
Tunnel tokenWhether a Cloudflare tunnel token is on disk. present, no registration marker (tunnel stays off) means the token is left over from a Hub that was resetPair the Hub again — see Device pairing
Device IDWhether the device ID belongs to this machine. copied from another machine means the env file came from another machineSee Move your Hub to a new machine
OperatorWhether anyone can sign in. none on a registered Hub means nobody has claimed itRun cihub claim --email <you@example.com> on the Hub, or sign in once through CI Account
Registration, Portal check-inWhere the Hub is in pairing with CI Account, and whether CI Account accepted its last check-in. degraded (portal_rejected) and degraded (tunnel_token_missing) fail the checkRun cihub register --code <code> with a fresh pairing code
CLI vs stackWhether the cihub you’re running and the Hub stack come from the same release. A proven mismatch fails; a dev image with no release tag is only a note. A cihub run from a source checkout names no release, so doctor compares commits, and a difference is only a noteUpdate the older side — see Auto Update with Cron
Image pinWhether the env file names the image that is actually running. If they differ, the Hub reverts to the older image the next time the machine restartsFollow the fix that doctor prints
Duplicate DB subnets, Hub pool overlaps, Orphan compose networksDocker network ranges that overlap, or unused app networksRun cihub doctor --repair-networks to remove unused networks
Docker bridgeWhether the Hub container can reach services on the host. blocked means a host firewall drops the traffic, and doctor prints the ufw allow command to fix it. refused means the service listens on loopback only. Doctor checks Hub’s own API port, Ollama, vLLM, and Lemonade, plus an MTPLX or speculative-inference server only when its URL is in the env file, and leaves off any service that isn’t listening on the hostOllama not reachable from containers

Lines that read unknown mean doctor couldn’t ask: for example, Hub not answering when the stack isn’t running.

Where to go next

SymptomPage
An app won’t start, dashboard unreachable, pairing fails, remote access is offlineCommon issues
Docker won’t start, permission denied, disk full, port conflicts, the Hub container exits at startupDocker issues
You need to read logsLog viewer
Nothing here fixed itGetting help

Before running any destructive reset (cihub reset, docker system prune -a), back up first — see Backup and restore.

Last updated on