Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Troubleshoot and clean up Rust and Axum

Diagnose a failed checkpoint

Both Cargo.toml and Cargo.lock must be at the source root. Commit rust-toolchain.toml. Set Process type web or worker to match the compiled binary names; /cnb/process/migrate selects the migration binary inside the image.

SymptomCheck
No build startsThe Environment uses release source Build, the pushed branch is main, and both apps use the shared repository root. Review framework availability.
Build fails detectionCheck the manifest and lockfiles in the committed source, not just local files. See the hello chapter’s file list.
Health check failsPort is 3000, binding is 0.0.0.0, path is /health, and the web app selects web.
Notes returns 503Primary attachment is DATABASE_URL, engine matches its type, database is running, and the schema command printed Schema ready.
Export stays queuedWorker selects worker, has its own database and REDIS_URL attachments, and has one running replica. A recovered pending job waits up to 30 seconds.
Download fails after adding S3Attach the bucket to both apps with no prefix, wait for their restart, and create a new export. Old Redis-only exports have no S3 object.
Forbidden operationConfirm your project capabilities for deploying, databases, storage, or secrets; ask the project administrator to grant the needed access.

Dashboard: inspect the app’s Deployments, Logs, and Config tabs. The Process field is also editable under Settings; clearing it restores the buildpack’s default process.

CLI:

paas ps -a notes-web -o "$TUTORIAL_ORG" -p examples -e rust
paas logs -a notes-web -o "$TUTORIAL_ORG" -p examples -e rust
paas logs -a notes-worker -o "$TUTORIAL_ORG" -p examples -e rust
paas apps attachments notes-web -o "$TUTORIAL_ORG" -p examples -e rust
paas apps attachments notes-worker -o "$TUTORIAL_ORG" -p examples -e rust

Do not print connection strings or credentials into logs. The example’s error responses identify the failing checkpoint without exposing a password.

Before deleting the example, review Take an Example to Production if you plan to adapt it. For platform-wide symptoms, see Troubleshooting & FAQ.

Clean up

Keep anything you want to retain by downloading exports first. Deleting this tutorial Environment permanently removes its apps and data resources; it is not a way to pause them.

Dashboard: open Project Examples → Environment rust → Settings → Delete Environment, then confirm its name. Make sure this Environment contains only the tutorial resources.

CLI: review its resources, then confirm deletion:

paas apps list -o "$TUTORIAL_ORG" -p examples -e rust
paas dbs list -o "$TUTORIAL_ORG" -p examples -e rust
paas envs delete rust -o "$TUTORIAL_ORG" -p examples --confirm rust

This removes the web/worker, primary and optional databases, Redis, and tutorial bucket created in this Environment. If you used local services, run docker compose down -v from the example folder to discard that separate local dataset.