Operations
Previewing Changes
Commands that change the platform show the affected objects before asking for confirmation. To inspect a change without applying it, add --plan:
void platform user suspend <user-id> --reason "Investigating unexpected traffic" --planThe preview shows which account will be suspended and the effect on its projects. Run the command again without --plan to confirm interactively, or use --yes when the change is ready to apply:
void platform user suspend <user-id> --reason "Investigating unexpected traffic" --yesScripts must use --yes to apply these changes. The void platform auth session commands run directly and do not use --plan or --yes; changes under void platform config auth do use previews and confirmation. After a change, void platform system events shows the administrator, affected objects, and recorded outcome.
Changes can take longer when an account owns many resources. Requests that change the platform allow five minutes by default; use --timeout to set a different limit in seconds:
void platform user delete <user-id> --timeout 600 --planIf a request times out or loses its connection, some work may already have finished. Check the affected objects and system events before retrying. Void reports partial results when it can and does not automatically repeat the change.
Following Logs
To investigate a deployment, find its ID and follow its runtime logs:
void platform deployment list --project <project-id>
void platform deployment logs <deployment-id> --since 10m --followRuntime logs include application messages, exceptions, and HTTP status codes. Without --follow, the command reads a page of historical logs. Use --since to choose a duration, an ISO date, or a timestamp in milliseconds.
Logs can become available after a request finishes. Following checks a five-minute overlap to pick up delayed records without printing them again. Records delayed longer than that may need a later historical query.
Build logs use the build's ID:
void platform build logs <build-id> --followFollowing waits for the final logs before stopping, including diagnostics written after the build's status changes. For a GitHub Actions build, the command gives you the URL of its logs.
Checking the Platform
Use the overview to see recent activity, or run a health check to test the platform's services and database:
void platform system overview
void platform system healthHealth checks use the services configured for the selected platform. An unhealthy result exits with a nonzero status, so the same command can be used in a script.
The browser dashboard's System Status checks refresh every 30 seconds. Failed checks show an HTTP status or connection error beside the service name. If the dashboard cannot refresh the checks, it reports that status is unavailable instead of displaying stale results.
Use void platform upgrade, repair, disable, and enable to maintain your platform. See platform maintenance.
For disaster recovery, keep a matching PostgreSQL backup, provider data backups, installation identity and complete project-encryption keyring, and immutable runtime artifacts. Keep traffic disabled while restoring data, run discover to reconstruct verified local metadata, and review repair --plan before recreating missing installer-owned infrastructure. Neither command restores backed-up data. See Prepare for disaster recovery for the full sequence.
Using Scripts
Add --json to read a command's result from another program:
void platform user list --page 1 --limit 50 --json
void platform system health --jsonResults go to standard output. Command errors go to standard error as JSON and exit with a nonzero status. With --follow, each log response is a separate JSON line.
Operator tokens expire after one hour. For CI, mint a new operator token at the start of each job from a valid full API login session belonging to an active administrator. Choose the platform explicitly, inject the full session as VOID_TOKEN from your secret manager, and capture the exchange output directly into the protected job environment:
export VOID_API_URL=https://platform.example.com
VOID_OPERATOR_TOKEN="$(
printf '%s' "$VOID_TOKEN" | void platform auth token --token-stdin
)" || exit 1
export VOID_OPERATOR_TOKEN
unset VOID_TOKEN
void platform system health --json
unset VOID_OPERATOR_TOKENDisable shell tracing for the exchange and do not write either token to logs or plaintext files. A full API login session expires after 30 days and can be revoked sooner; renew it through the normal authenticated login flow and update the protected CI secret. A job that runs longer than one hour must repeat the exchange while its full API session is still valid. An expired operator token cannot refresh itself, and Void does not issue permanent service tokens for administrator automation.
auth login --token-stdin performs the same elevation and saves the one-hour operator token in the system keychain for interactive use. See operator authentication for the full command syntax.
An email zone has one connection and ingress Worker shared by its exact domain assignments. Removing one assignment preserves resources used by the others. The Email administration page can explicitly rotate that connection secret; ordinary synchronization does not rotate it. Setup and cleanup outcomes include operation IDs, and uncertain provider writes remain recorded until reconciled.