> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Reconstruir imagen desde la fuente actual

> Construye la imagen de nuevo sin subir nada, a partir del contexto de build guardado o de la rama de GitHub vinculada.

La solicitud no tiene cuerpo. La fuente depende de la imagen: una imagen vinculada a GitHub se construye a partir de la punta actual de la rama vinculada; cualquier otra imagen se construye a partir del contexto de su último build, **incluso de un build que falló**. Úsalo para repetir un build que falló sin enviar los archivos de nuevo.

La reconstrucción mantiene el mismo ID de la imagen y, cuando termina bien, añade una nueva [versión](https://docs.vertracloud.app/es-es/api-reference/endpoint/images/versions.md). Cuenta en el límite de deploys por hora como cualquier otro build, y una reconstrucción que falla mantiene la versión actual. **Las aplicaciones solo se reinician si la imagen tiene `auto_update_apps` activado**; en caso contrario, cada app pasa a la nueva versión en el próximo reinicio o deploy que pidas. Para construir con otros archivos, usa [Reconstruir imagen](https://docs.vertracloud.app/es-es/api-reference/endpoint/images/rebuild.md).

Necesita el scope `images:write` cuando se llama con una clave de API.

**image\_id** `string` *required*

El ID de la imagen.

**workspace\_id** `string`

Si la imagen pertenece a un workspace, el ID del workspace. Es obligatorio para los miembros del workspace que actúen sobre una imagen que no les pertenece.

### Response

**response** `object`

La imagen. La respuesta es `202 Accepted` con `status: "building"`.

**Mostrar objeto**

**id** `string`

El ID de la imagen.

**name** `string`

El nombre de la imagen.

**description** `string | null`

La descripción de la imagen (texto libre, de hasta 128 caracteres), o `null` si no tiene ninguna.

**owner** `string`

`account` para tus imágenes, `system` para las imágenes que proporciona la plataforma (estas no se pueden modificar ni eliminar).

**status** `string`

Estado del último build: `building`, `success` o `failed`. Una reconstrucción fallida no cambia la versión actual: las aplicaciones siguen ejecutando la última que funcionó.

**error** `string | null`

Motivo legible del último build fallido, o `null`.

**digest** `string | null`

Digest (`sha256:...`) de la versión actual, o `null` mientras ningún build haya tenido éxito.

**uncompressed\_bytes** `integer | null`

Tamaño de la versión actual, sin comprimir, en bytes.

**layer\_count** `integer | null`

Número de capas de la versión actual.

**apps** `object[]`

Las aplicaciones creadas a partir de esta imagen. Cada una tiene `id`, `name`, `version_id` (la versión de la imagen que ejecuta, o `null`) y `outdated` (`true` cuando la imagen tiene una versión más nueva; la aplicación pasa a ella en el siguiente reinicio o despliegue que pidas).

**github** `object | null`

El repositorio y la rama de GitHub vinculados (`repository` como `owner/name`, `branch`), o `null` si la imagen no está vinculada.

**current\_version\_id** `string | null`

La versión actual de la imagen, o `null` mientras ningún build haya tenido éxito.

**created\_at** `string`

Cuándo se creó la imagen.

**updated\_at** `string`

Cuándo se actualizó por última vez la imagen.

```json Response theme={null}
{
  "response": {
    "id": "img-abc123def456",
    "name": "my-api",
    "description": null,
    "owner": "account",
    "status": "building",
    "error": null,
    "digest": null,
    "uncompressed_bytes": null,
    "layer_count": null,
    "apps": [],
    "github": null,
    "current_version_id": null,
    "created_at": "2026-10-23T14:02:00Z",
    "updated_at": "2026-10-23T14:02:00Z"
  }
}
```

### Error Responses

**code** `string`

El código de error que indica el motivo del fallo. Valores posibles:

* `API_KEY_SCOPE_DENIED`: La clave de API no tiene el scope necesario (`403`).
* `IMAGE_NOT_FOUND`: La imagen no existe (`404`).
* `ACCESS_DENIED`: La imagen es de otra cuenta o la proporciona la plataforma, o eres miembro del workspace sin derecho a reconstruirla (`403`).
* `IMAGE_TEMPLATE_ONLY`: La imagen vino de una plantilla y no se puede reconstruir (`409`).
* `PLAN_REQUIRED`: El dueño de la imagen no tiene un plan activo (`403`).
* `PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES`: El plan no incluye imágenes Docker propias (`403`).
* `IMAGE_BUILD_IN_PROGRESS`: La imagen ya tiene un build en curso (`409`).
* `OPERATION_IN_PROGRESS`: La imagen se está eliminando (`409`).
* `IMAGE_NOT_READY`: La imagen no tiene un contexto de build guardado desde el que construir (`409`).
* `DEPLOY_RATE_LIMITED`: Se alcanzó el límite de deploys por hora del dueño de la imagen; `details` trae `limit`, `window_seconds` y `retry_after` (`429`).
* `INSTALLATION_NOT_FOUND`: El repositorio vinculado ya no está en una instalación de la GitHub App del dueño de la imagen (`404`).
* `FETCH_ZIP_ERROR`: GitHub no devolvió el archivo del repositorio, por ejemplo porque la rama vinculada ya no existe (`404`), o GitHub no está disponible (`502`).
* `DOCKERFILE_NOT_FOUND`: No hay un archivo llamado exactamente `Dockerfile` en la raíz del contexto (`400`).
* `DOCKERFILE_REFUSED`: El `Dockerfile` tiene una instrucción rechazada; `details` lista los hallazgos (`400`).
* `INVALID_ZIP`: El contexto de build guardado o el archivo del repositorio no es un ZIP legible (`400`).
* `IMAGE_CONTEXT_TOO_LARGE`: El contexto de build superó un límite: más de 100 MB comprimido, más de 512 MB descomprimido, más de 50.000 entradas o un `Dockerfile` de más de 1 MB (`413`).
* `IMAGE_BUILDER_UNAVAILABLE`: Ningún host puede construir imágenes ahora; inténtalo de nuevo más tarde (`503`). También se devuelve cuando el build no pudo iniciarse (`409`).
* `INTERNAL_SERVER_ERROR`: Fallo inesperado (`500`).

```json Error Response theme={null}
{
  "code": "IMAGE_BUILD_IN_PROGRESS"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.