Skip to content

Exit codes & errors

CodeMeaning
0Success.
1Generic failure (network, parse, validation).
2Usage error — bad flag, missing argument.
3Auth failure — Unauthenticated or PermissionDenied.
4Resource not found.
5Conflict / already exists.
6Validation error.
7Timeout (rollout, scale, etc.).
124Inner-process timeout (passed through from exec).

Scripts should branch on exit code — not on stderr text.

The CLI surfaces these directly:

CodeWhenCommon fix
UnauthenticatedNo token, expired token, or revoked token.rune login again.
PermissionDeniedToken is valid but the policy doesn’t allow this verb/resource.Check rune whoami policies; ask admin.
NotFoundResource missing.rune get to confirm.
AlreadyExistsTrying to create something that already exists.Use cast (idempotent) instead of create.
InvalidArgumentSchema/validation rejected by the server.rune lint locally first.
FailedPreconditionState doesn’t allow this op (e.g., delete in use).Resolve dependents first.
DeadlineExceededRequest timed out.Increase --timeout, check server load.
InternalServer-side bug or runtime error.Check runed logs.
UnavailableServer unreachable.Network / process / firewall.

The server isn’t reachable. Check:

Terminal window
sudo systemctl status runed
sudo journalctl -u runed -n 50 --no-pager
nc -zv <host> 7863

If TLS is enabled, make sure the client context has the right CA / cert / key.

Your context has no token. Re-run rune login or set --token / --token-file for a one-off.

The token is wrong, expired, or revoked. rune admin token list to verify.

RBAC. Your subject’s policies don’t allow Y on X. Either:

  • Use a different context with broader policies, or
  • Get an admin to attach a policy. See Identity & RBAC.

The spec failed validation. Fix the field. rune lint would have caught this locally.

Something depends on the resource you’re deleting. List dependents:

Terminal window
rune deps dependents <name>

Force if you really mean it:

Terminal window
rune delete <name> --force

The Docker runner couldn’t pull. Either:

  • Image doesn’t exist (typo).
  • Registry is private — add credentials with rune admin registry add.
  • Network can’t reach the registry from the host.

failed to start process: exec: "...": file does not exist

Section titled “failed to start process: exec: "...": file does not exist”

Process runner can’t find the binary. The path in process.command must exist on the host.

  • runed logs: journalctl -u runed -n 200 --no-pager.
  • Set --log-level=debug on the CLI for verbose RPC traces.
  • Set --debug on runed for full server traces.
  • Each RPC error includes a server-side request ID — search for it in the logs.