Saltar al contenido principal
POST
Hacer rollback de la aplicación a una release
Devuelve la aplicación al código que tenía en esta release, y después la reinicia. El rollback se registra como una nueva release con source: "rollback", así que puedes deshacerlo de la misma forma. Opcionalmente, también restaura las variables de entorno guardadas con esa release. Un rollback no toca los datos que la aplicación creó mientras se ejecutaba, como un archivo de base de datos o las subidas. Para recuperar esos datos, usa un snapshot.
string
requerido
El ID de la aplicación. Si la aplicación pertenece a un workspace, pasa su ID en el parámetro de consulta workspace_id.
string
requerido
El ID de la release a la que hacer rollback, tal como lo devuelve la lista de releases. Debe ser una release cuyo código siga conservándose (rollback.available es true).
string
Si la aplicación pertenece a un workspace, el ID del workspace.
boolean
predeterminado:"false"
Opcional. true también reemplaza las variables de entorno de la aplicación por las guardadas con esa release. El valor predeterminado false mantiene las variables que la aplicación tiene ahora. Revisa antes los cambios con la previsualización del rollback.
Lo que hace el rollback:
  • Código: cada archivo de código de la release se restaura exactamente como estaba. Los archivos de código que la release no tenía se eliminan.
  • Datos: los archivos que la aplicación creó mientras se ejecutaba no se modifican ni se eliminan.
  • Variables: no cambian, salvo que restore_environment sea true.
  • Reinicio: la aplicación se reinicia con un build forzado, así que su comando de build se vuelve a ejecutar si tiene uno.
  • Historial de releases: la versión que estaba en ejecución pasa a rolled_back, y la nueva release pasa a ser la activa. Su rollback.from es la release que restauraste.
Se aplican además estas reglas:
  • Un rollback no usa los slots de despliegue de tu plan, pero dos rollbacks de la misma aplicación necesitan al menos 30 segundos entre sí. Los rollbacks también tienen su propio límite por hora y cuenta, igual al límite de despliegues por hora de tu plan. Si lo superas, se devuelve 429 DEPLOY_RATE_LIMITED, con details.limit, details.window_seconds y details.retry_after, y no consume ningún slot de despliegue.
  • Si el código de la release no se puede restaurar, la petición falla con INTERNAL_SERVER_ERROR. No cambia nada. Si el código guardado de esa release está dañado, falla con INVALID_ZIP_STRUCTURE (400) antes de tocar ningún archivo.
  • Si el reinicio falla después de restaurar los archivos, la respuesta es el error del reinicio (por ejemplo, BUILD_FAILED). La aplicación ya ejecuta el código restaurado, así que corrige la causa y reinícala.
Solo se pueden restaurar las releases que tu plan conserva. Consulta Historial de despliegues y límites de rollback. Requiere el scope apps:write cuando se llama con una clave de API. Si restore_environment es true, la clave también necesita el scope apps:envs; sin él, la petición devuelve 403 API_KEY_SCOPE_DENIED. Para un miembro de un workspace, requiere los permisos apps:files y apps:lifecycle, además de apps:envs si se restauran variables.

Respuesta

object
La nueva release creada por el rollback.

Respuestas de error

string
Códigos de error posibles:
  • AUTH_TOKEN_MISSING, API_KEY_INVALID, SESSION_REVOKED: Falta la cabecera Authorization, la clave de API no es válida o la sesión del panel fue revocada (401).
  • API_KEY_IP_DENIED: La clave de API se usa desde una IP fuera de su lista de permitidas (403).
  • APP_NOT_FOUND: La aplicación no existe, o no pertenece a esta cuenta ni a este workspace (404).
  • RELEASE_NOT_FOUND: La release no existe, o pertenece a otra aplicación (404).
  • PLAN_DOES_NOT_SUPPORT_ROLLBACK: Tu plan no incluye hacer rollback a releases anteriores (403). El rollback empieza en Pro.
  • API_KEY_SCOPE_DENIED: La clave de API no tiene el scope apps:write, o le falta apps:envs mientras restore_environment es true (403).
  • RELEASE_ALREADY_ACTIVE: La release ya es la que ejecuta la aplicación, o tiene el mismo código y restore_environment no cambiaría nada (409).
  • RELEASE_EXPIRED: El código de esta release ya no se conserva, porque expiró o es más antigua que el número de releases que tu plan conserva (410).
  • OPERATION_IN_PROGRESS: Otra operación de ciclo de vida sobre la misma aplicación ya está en curso (409). No se cambió nada; espera unos segundos y vuelve a intentarlo.
  • RESTORE_COOLDOWN: El rollback anterior de esta aplicación fue hace menos de 30 segundos (429). Espera y vuelve a intentarlo.
  • DEPLOY_RATE_LIMITED: Se alcanzó el límite horario de rollbacks de la cuenta (429). details incluye limit, window_seconds y retry_after. Espera y vuelve a intentarlo.
string
Un mensaje descriptivo con más detalles sobre el error.
Última modificación el 28 de octubre de 2026