Troubleshooting
Common problems with the symptom you can observe, the documented cause and the verified fix.
How to use this guide
Each entry names a symptom you can observe, the cause the repository documents, and the fix. Start with the symptom, not the fix: several different failures produce a blank page or a failed start. If the manager has not been installed yet, the quick start is the better starting point.
Symptoms at a glance
| Symptom | Likely cause | Guide |
|---|---|---|
| The dev command starts but no backend logs appear and ports never bind | The nested process chain wedged on Windows | Backend not starting |
| EADDRINUSE on the manager or proxy port | An orphaned process from a previous session | Port in use |
| The interface loads but API calls fail | The Vite proxy points at the wrong port | Vite proxy |
| The interface works but a project will not start | Docker is not running | Docker not running |
| The backend exits at boot with a key error | A missing or short signing or vault key | Missing keys |
| The subdomain URL does not resolve | Wildcard resolution or base-domain configuration | Subdomain routing |
| A leftover backup file and a suspect manager database | A failed migration left the database inconsistent | Database locked |
Before you change anything
Collect three facts: the exact command you ran, the last complete line of output, and which ports are listening. Most of the issues below are diagnosed by those three facts alone. On Windows, scripts/ports.ps1 lists the known ports with their owning process. On Linux and macOS, lsof -i tcp:<port> does the same.
Change one thing at a time. A configuration change, a process kill and a reinstall performed together leave you unable to say which one fixed or broke the situation.
When the problem is a project, not the manager
The manager interface can be healthy while one project fails. In that case, read the project's overview and its service logs before touching the manager. A failed start usually names a missing path, a port conflict or a Docker problem. The logs guide explains where to look, and the projects guide explains the preflight checks.
What not to do
Do not run the manager as root to get past a Docker permission error. Do not regenerate the vault key to fix a login problem. Do not delete the manager database before you have copied it aside. Do not edit the database by hand to change a project path; re-register the project instead. Each of these turns a recoverable problem into a data-loss problem.
Guides
Backend not starting
No logs, no bound ports, a wedged dev chain.
Startup
Open backend not startingPort in use
EADDRINUSE and how to find the owning process.
Ports
Open port in useVite proxy
The interface loads but API calls fail.
Development
Open vite proxyDocker not running
The UI works; project starts fail.
Docker
Open docker not runningMissing keys
Boot refusal for a missing or short key.
Configuration
Open missing keysSubdomain routing
The host-routed URL does not resolve.
Proxy
Open subdomain routingDatabase locked
A leftover backup and a suspect manager database.
Recovery
Open database lockedReading the manager's own logs
The manager writes its proxy and denial logs to the platform log directory, and the launcher aggregates backend and web output into a log file in the product folder. A denial entry names the entry point and the reason; a launcher entry names the process and its output. Reading the right log is usually faster than restarting the stack and hoping the problem reproduces.
If the manager will not start at all, the first useful fact is whether the process exited or is still running without a listener. An exit with an error is a configuration problem; a live process with no listener is usually a port or process problem.
Keeping a record
Write down the command, the output and the fix. The same machine tends to produce the same failures, and a short note saves the next investigation. If a fix requires changing a port or domain, record which clients were updated as well; a stale client is the most common follow-up failure.
If none of these match
If the symptom is not in the list, reproduce it once with the narrowest command and collect the last complete line of output. Then check the project's own logs before the manager's: a project that fails to start is usually explaining itself in its service log. The feature pages for projects, logs and configuration describe the normal behaviour those logs are diverging from.