Troubleshooting
Start with the narrowest read-only check that crosses the failing boundary. Avoid changing firewall, credentials and application state at the same time; that makes the original cause harder to see.
Provider query fails
vops providers capabilities <provider>vops config listvops keyring statusvops providers plans <provider> --refresh- If static capabilities work but account data fails, focus on credentials.
- If the vault is sealed and locked, unlock it from the terminal.
- If only one provider fails, verify that provider’s variables and permissions.
- A missing public catalog result is not evidence that provisioning credentials are invalid.
Host is unreachable
vops host show web-1vops host status web-1vops host ssh web-1 --printvops host key status web-1Check the recorded address, user, port and key before changing the remote SSH configuration. Verify the provider or host firewall still allows the SSH source.
If host add recorded an unreachable host, correct the access path and re-run
the status probe; inventory registration itself did not damage the server.
Application will not start
vops app show my-apivops app status my-apivops app logs my-api --lines 300vops app preflight web-1Look for:
- an image the host cannot pull;
- a missing declared value;
- a port already in use;
- a failed health path;
- insufficient disk or memory;
- a runtime coexistence conflict reported by preflight.
Restart only after understanding whether the failure is transient:
vops app restart my-apiRestart leaves images, units and secrets in place.
Domain or TLS fails
vops ingress status web-1vops app status my-apivops deploy verify --app my-apivops host firewall web-1Confirm:
- the application is healthy before ingress;
- the hostname resolves to the host;
- ports 80 and 443 reach the host;
- no other process owns those ports;
- the certificate request used the intended production or staging endpoint.
Do not force DNS replacement until you know which existing record would be changed.
Backup fails
vops backup status web-1vops backup snapshots web-1vops backup run web-1Verify the remote paths exist and the S3-compatible repository credentials are still valid. A restore should target a new directory first:
vops backup restore web-1 \ --snapshot latest \ --target /srv/restore-check \ --yesInspect restored data before replacing a live path.
Dashboard reports a locked profile
The browser cannot prompt for the passphrase through an HTTP request:
vops keyring unlockRetry the action, then vops keyring lock when the credential window is no
longer needed.
Development agent is denied
vops agent status --project .vops agent session listvops agent session show <session-id>vops agent approvals list --status pendingvops agent operations list --session <session-id>Check expiry, pause/revoke state, target scope, environment, operation count and spend ceiling. A denial at the policy boundary should not be “fixed” by giving the agent raw provider or SSH credentials.
If the integration files are incomplete, repeat the idempotent setup and review the reported backups:
vops agent setup <client> --scope project --project .Preserve evidence
Use --json when the failing command supports it, save the result locally and
include:
- installed vops version;
- command and non-secret flags;
- stable error code;
- target provider or inventory name;
- whether the failure happened in plan, apply or verify.
Never include raw tokens, private keys, application secret values or reusable agent session tokens.