> ## 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 e solução de problemas

> Faça rollback de um upgrade Helm do Midaz que falhou e resolva problemas comuns depois do upgrade: quedas de pod, erros de schema e integrações quebradas.

<Warning>
  As orientações de CRM e Fees marcadas como legado nesta página valem apenas para um release legado existente. O Midaz v4 faz deploy do Ledger unificado e serve CRM e Fees em `/v2`.
</Warning>

O repositório Helm mantém uma carga de trabalho `crm.enabled` e o chart `plugin-fees-helm` para releases de aplicação mais antigos. Essas são superfícies de compatibilidade legadas, não o modelo de deploy do Midaz v4.

## Procedimentos de rollback

***

Se algo der errado depois de um upgrade, você pode fazer rollback para uma versão anterior.

### Quando fazer rollback

Considere fazer rollback se você observar:

* Pods que não iniciam ou entram em crash loop
* Erros de API ou indisponibilidade do serviço
* Inconsistências de dados
* Degradação de desempenho

### Consultar o histórico do release

Veja o histórico de revisões de um release:

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

Exemplo de saída:

```
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
```

### Executar o rollback

Faça rollback para uma revisão específica:

* **Fazer rollback do Midaz para a revisão anterior**

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

* **Fazer rollback de um plugin (exemplo: Fees)**

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

<Note>
  O CRM não tem um release próprio para sofrer rollback. Ele vem dentro do chart do Midaz, então o rollback de `midaz` leva o CRM junto.
</Note>

### Verificar o rollback

* **Verificar a versão do release**

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

* **Verificar os pods**

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

* **Consultar os logs**

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

  <Tab title="Charts anteriores à 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>
  O rollback pode não reverter mudanças de schema do banco de dados. Se o upgrade incluiu migrations de banco de dados, você pode precisar restaurar a partir de um backup.
</Danger>

## Solução de problemas

***

### Pods travados no estado Pending

**Sintoma:** os pods continuam no status `Pending` depois do upgrade.

**Solução:** verifique se há restrições de recursos:

* **Descrever o pod pendente**

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

* **Verificar os recursos dos nós**

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

### Erros ao baixar a imagem

**Sintoma:** os pods mostram `ImagePullBackOff` ou `ErrImagePull`.

**Solução:** verifique o acesso ao registry de imagens e as credenciais:

* **Verificar os eventos do pod**

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

* **Verificar se a imagem existe**

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

### Erros de configuração

**Sintoma:** os pods caem com erros de configuração nos logs.

**Solução:** compare seus values com os novos padrões:

* **Ver os values atuais**

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

* **Ver os padrões do chart**

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

### Problemas de conexão com o banco de dados

**Sintoma:** os serviços não conseguem conectar ao PostgreSQL ou ao MongoDB.

**Solução:** verifique a conectividade com o banco de dados e as credenciais:

* **Verificar os pods de banco de dados**

```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
```

* **Consultar os logs do serviço**

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

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

## Procedimento geral de rollback

***

Se você encontrar problemas depois de qualquer upgrade:

<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 o Midaz com Helm](/pt/platform/deploy/midaz/midaz-installation) - Guia de instalação inicial
* [Compatibilidade de versões do chart do Midaz](/pt/platform/deploy/helm-version-compatibility) - Metadados atuais do chart e da aplicação
* [Repositório Helm](https://github.com/LerianStudio/helm) - Código-fonte e notas de release
