# Code and data recovery

> Distinguish executable selection from restoring saved data.

- Canonical page: https://docs.userland.fun/guides/rollback/
- Docs index for agents: https://docs.userland.fun/llms.txt

> **For agents:** Read the [complete native guide](/native-guide.md) and current `context.get` capabilities. Use only implemented operations and preserve exact Account, app and environment authority.

`apps.apply` can select an exact owned build artifact or candidate deployment using the inspected source and configuration identities. Target resources, secrets and migrations are resolved again; publishing an older executable is not a database rollback.

A stale app revision, changed binding, revoked actor or unavailable resource blocks the switch. Do not bypass a conflict by blindly replacing current state. Inspect the current app and decide what the requested recovery means.

For data recovery use supported snapshots and isolated `apps.restore` resources. Verify the restored app with its own target bindings, then publish explicitly if a production switch is authorized. Keep the prior working deployment until the operation confirms its replacement.
