# Resolver problemas

Recupere falhas de coleta sem criar outra resposta para a mesma ocorrência.

## Localize a falha

| Sintoma | Confira | Próxima ação |
| --- | --- | --- |
| Solicitação não chega | Estado, dia da cadência, identidade e cache; depois Communication Message dessa pessoa | Corrija a primeira dependência; reexecutar envia a todos com algo vencendo |
| Message Failed com `invalid_arguments` | A conta Slack da pessoa: a causa real costuma ser `user_not_found` ao abrir a DM | Corrija o identity binding ou o Tool Account; linhas Failed não são reenviadas |
| Pessoa perguntada duas vezes pela mesma KPI | Duas memberships, segunda execução no dia ou a base legada Operations | Confira as linhas de Message do dia; a base legada está fora deste sistema |
| Menos itens que o esperado | Mais de 25 itens vencendo para a pessoa | Itens além de 25 são contados, não enviados |
| expired_trigger_id ou aviso de retry | Cache e idade da interação antes da abertura | Renove credenciais se preciso e clique novamente |
| Formulário abre sem contexto | Programação, indicador da meta e membership | Corrija o contexto; feche e reabra |
| Número rejeitado | Inteiro não negativo e configuração de decimais | Informe valor válido para a entrada suportada |
| Evidência falha | ID, acesso, extensão, tamanho e anexos existentes | Recupere a mesma Observation |
| Processing persiste | Observation Date e etapa de execução | Investigue após a proteção de processamento; não presuma ausência de gravação |
| Chaves duplicadas | Linhas com mesma Submission Key | Reconcilie valores e evidências antes de repetir; não apague indiscriminadamente |
| Valor salvo, checkbox incorreto | Estado Recorded e resultado da atualização Slack | Repare sincronização após conferir dados salvos |

## Limites do diagnóstico

Registre workflow, etapa, horário, contagem e código de erro. Não copie tokens, payloads Slack brutos, URLs privadas de resposta nem conteúdo de evidências para logs. O salvamento de payloads está desabilitado; histórico vazio não comprova ausência de execução. Combine o estado do Airtable com Communication Message. Um External Message Id `dry-run-` significa que nada foi enviado. Preserve a linha com falha até reconciliar valor e anexos.

## O que não foi testado

Envio duplicado simultâneo, indisponibilidade da origem, token revogado e upload parcial de vários arquivos não foram reproduzidos. O tratamento acima segue a lógica do workflow; teste-o numa execução controlada antes de depender dele.