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

# Rollback y solución de problemas

> Revierte una actualización fallida de Midaz con Helm y resuelve problemas comunes posteriores a la actualización: caídas de pods, errores de esquema e integraciones rotas.

<Warning>
  La orientación sobre CRM y Fees marcada como legacy en esta página aplica solo a un release legacy existente. Midaz v4 despliega el Ledger unificado y sirve CRM y Fees en `/v2`.
</Warning>

El repositorio de Helm conserva un workload `crm.enabled` y el chart `plugin-fees-helm` para releases de aplicación anteriores. Son superficies de compatibilidad legacy, no el modelo de despliegue de Midaz v4.

## Procedimientos de rollback

***

Si algo sale mal después de una actualización, puedes hacer rollback a una versión anterior.

### Cuándo hacer rollback

Considera hacer rollback si observas:

* Pods que no arrancan o entran en crash loop
* Errores de API o indisponibilidad del servicio
* Inconsistencias de datos
* Degradación del rendimiento

### Revisar el historial del release

Consulta el historial de revisiones de un release:

```bash theme={null}
helm history midaz -n midaz
```

Salida de ejemplo:

```
REVISION  STATUS      CHART                APP VERSION  DESCRIPTION
1         superseded  midaz-helm-8.5.0     3.7.7        Install complete
2         deployed    midaz-helm-8.6.0     3.8.0        Upgrade complete
```

### Ejecutar el rollback

Haz rollback a una revisión específica:

* **Rollback de Midaz a la revisión anterior**

```bash theme={null}
helm rollback midaz 1 -n midaz --wait --timeout 10m
```

* **Rollback de un plugin (ejemplo: Fees)**

```bash theme={null}
helm rollback plugin-fees 1 -n midaz-plugins --wait --timeout 10m
```

<Note>
  CRM no tiene un release propio del que hacer rollback. Se distribuye dentro del chart de Midaz, así que hacer rollback de `midaz` revierte CRM con él.
</Note>

### Verificar el rollback

* **Verificar la versión del release**

```bash theme={null}
helm list -n midaz
```

* **Verificar los pods**

```bash theme={null}
kubectl get pods -n midaz
```

* **Revisar los logs**

<Tabs>
  <Tab title="Chart actual (v7.0.0+)">
    ```bash theme={null}
    kubectl logs -n midaz deployment/midaz-ledger --tail=50
    ```
  </Tab>

  <Tab title="Charts anteriores a v7.0.0">
    ```bash theme={null}
    kubectl logs -n midaz deployment/midaz-onboarding --tail=50
    kubectl logs -n midaz deployment/midaz-transaction --tail=50
    ```
  </Tab>
</Tabs>

<Danger>
  Los rollbacks pueden no revertir los cambios de esquema de base de datos. Si la actualización incluyó migraciones de base de datos, puedes necesitar restaurar desde un backup de la base de datos.
</Danger>

## Solución de problemas

***

### Pods atascados en estado Pending

**Síntoma:** los pods permanecen en estado `Pending` después de la actualización.

**Solución:** revisa si hay restricciones de recursos:

* **Describir el pod pendiente**

```bash theme={null}
kubectl describe pod <pod-name> -n midaz
```

* **Revisar los recursos del nodo**

```bash theme={null}
kubectl top nodes
```

### Errores al descargar la imagen

**Síntoma:** los pods muestran `ImagePullBackOff` o `ErrImagePull`.

**Solución:** verifica el acceso al registry de imágenes y las credenciales:

* **Revisar los eventos del pod**

```bash theme={null}
kubectl describe pod <pod-name> -n midaz | grep -A 10 Events
```

* **Verificar que la imagen existe**

```bash theme={null}
docker pull lerianstudio/midaz-ledger:<appVersion>
```

### Errores de configuración

**Síntoma:** los pods se caen con errores relacionados con la configuración en los logs.

**Solución:** compara tus values con los valores predeterminados nuevos:

* **Ver los values actuales**

```bash theme={null}
helm get values midaz -n midaz
```

* **Ver los valores predeterminados del chart**

```bash theme={null}
helm show values oci://registry-1.docker.io/lerianstudio/midaz-helm --version <version>
```

### Problemas de conexión con la base de datos

**Síntoma:** los servicios no logran conectarse a PostgreSQL o MongoDB.

**Solución:** verifica la conectividad con la base de datos y las credenciales:

* **Revisar los pods de base de datos**

```bash theme={null}
kubectl get pods -n midaz -l app.kubernetes.io/name=postgresql
kubectl get pods -n midaz -l app.kubernetes.io/name=mongodb
```

* **Revisar los logs del servicio**

<Tabs>
  <Tab title="Chart actual (v7.0.0+)">
    ```bash theme={null}
    kubectl logs -n midaz deployment/midaz-ledger | grep -i database
    ```
  </Tab>

  <Tab title="Charts anteriores a v7.0.0">
    ```bash theme={null}
    kubectl logs -n midaz deployment/midaz-onboarding | grep -i database
    ```
  </Tab>
</Tabs>

## Procedimiento general de rollback

***

Si encuentras problemas después de cualquier actualización:

<CodeGroup>
  ```bash Shell theme={null}
  # List release history
  helm history midaz -n midaz

  # Rollback to previous version
  helm rollback midaz <REVISION> -n midaz

  # Verify rollback
  helm list -n midaz
  kubectl get pods -n midaz
  ```
</CodeGroup>

## Recursos relacionados

***

* [Instalar Midaz con Helm](/es/platform/deploy/midaz/midaz-installation) - Guía de instalación inicial
* [Compatibilidad de versiones del chart de Midaz](/es/platform/deploy/helm-version-compatibility) - Metadatos actuales del chart y de la aplicación
* [Repositorio de Helm](https://github.com/LerianStudio/helm) - Código fuente y notas de release
