Docs

Releases and rollbacks

List every release of a project, see what each one was built from, and put an earlier release back live without rebuilding it.

Updated October 12, 2026
On this page
  1. Release states
  2. List releases
  3. Roll back to an earlier release
  4. What a rollback changes
  5. Related

Every deploy creates a release with an id like dpl_…. Exactly one release per project is live at a time. Building a release and making it live are separate steps, which is what makes a rollback cheap: putting an earlier release back moves your project's traffic to output that was already built and stored. Nothing is rebuilt.

Release states

StateMeaningCan be made live?
buildingIts dependencies are being installed and built.No
readyBuilt and stored, about to go live.Yes
liveServing your project's traffic.It already is
supersededWas live; a later release or a rollback replaced it.Yes
failedNever went live. The failure field says why.No
goneIts files are no longer available.No

List releases

Open your project and go to Deployments. The history lists each release with its state, its short id, its size and when it was made. Select a row to see its details underneath.

The fields worth knowing on each release:

FieldWhat it holds
idThe release id, dpl_…. This is what you roll back to.
stateOne of the states above.
created_at, activated_atWhen it was made, and when it last became live. Seconds since the epoch.
sourceupload or github.
repo, branch, shaFor a GitHub release, the commit it was built from.
buildWhat ran before it went live, such as npm ci && npm run build. Null when nothing ran.
frameworkThe framework detected when it was built.
runtime_typestatic for files served from storage, fortly for a Worker.
failureFor a failed release, why.
files, bytesHow much the archive unpacked to.

Roll back to an earlier release

On the project's Deployments page, the newest release that can be restored has a Roll back button on its row. For any other release, open the row's menu and choose Roll back to this release. Every plan can roll back.

The switch is a single step: the release that was live becomes superseded, the one you chose becomes live, and your project's cached responses are cleared so the next request sees it. The log records Rolled back to version dpl_abc with the first seven characters of the id.

A rollback can be refused:

StatusMessageWhy
404no such releaseNo release with that id among the project's 200 most recent.
410that version cannot be made liveThe release is building, failed or gone.
410that release has been cleaned up and cannot be restoredAn older release whose files were kept on the server and have since been removed.

What a rollback changes

A rollback changes which code serves your project, and nothing else.

After a rollback
Code serving requestsThe release you chose, exactly as it was built
BuildNone. The stored output is served again.
DatabaseUnchanged. Rows and schema changes made since that release stay.
Uploaded filesUnchanged
Environment valuesUnchanged. The release reads the values as they are now, for the names that existed when it was built.
Domains and schedulesUnchanged
Cached responsesCleared

The database is not rolled back. If the release you are leaving ran a migration, the release you return to sees the migrated schema. Make schema changes that older code can live with — add columns before you use them, drop them only once no release reads them — or restore data separately from a backup.

Static assets belong to the release that shipped them: rolling back serves that release's own files, not whatever a newer release left behind.

Something missing or unclear? Tell us and we will fix the page.© 2026 Fortly