Troubleshooting¶
Guia para resolver problemas comuns.
Erros de Conexão¶
SourceUnavailableError¶
Causa: Fonte de dados não acessível após todas as tentativas.
Soluções:
- Verifique sua conexão com a internet
- Tente modo offline:
- Aguarde e tente novamente (fonte pode estar temporariamente fora)
- Verifique se há um proxy configurado que pode estar bloqueando
TimeoutError¶
Causa: Requisição demorou muito.
Soluções:
- Aumente o timeout:
- Verifique sua conexão
- Tente em horário de menor tráfego
403 Forbidden (CEPEA)¶
Causa: Cloudflare bloqueando requisições diretas ao CEPEA.
Solução: O agrobr automaticamente usa Notícias Agrícolas como fallback (httpx puro, sem Playwright). Se ainda falhar:
- Tente forçar atualização:
- Use modo offline com dados do cache:
Erros de Parsing¶
ParseError¶
Causa: Layout da fonte mudou e parser não consegue extrair dados.
Soluções:
- Atualize o agrobr:
- Verifique issues no GitHub para problemas conhecidos
- Use dados do cache enquanto o problema é corrigido:
Dados Vazios ou Incompletos¶
Causa: Fonte retornou dados parciais.
Verificações:
- O produto está correto?
- O período solicitado tem dados?
- Tente um período menor
Erros de Validação¶
ValidationError¶
Causa: Dados não passaram validação Pydantic ou estatística.
Soluções:
- Verifique se está usando produto válido
- Desabilite validação estatística se necessário:
AnomalyDetectedWarning¶
Causa: Valores fora do range histórico esperado.
Isso é normal quando: - Preços tiveram variação atípica (eventos de mercado) - Dados de nova safra com volumes diferentes
Verificar: - Compare com outras fontes - Verifique notícias do setor
Erros de Cache¶
DuckDB Lock / Segfault em Multi-Thread¶
Causa: O DuckDB DuckDBPyConnection não é thread-safe. Se o agrobr
é usado em um processo multi-thread (ex: MCP server, FastAPI com threads),
chamadas concorrentes ao cache podem causar segfault ou deadlock.
Solução: A partir da v0.10.1, o DuckDBStore usa
threading.Lock interno em todos os métodos. Se estiver em versão anterior,
atualize:
CacheError¶
Causa: Problema com DuckDB ou arquivo de cache corrompido.
Soluções:
- Limpe o cache:
- Ou via código:
- Se persistir, delete o arquivo:
Cache não Atualizando¶
Causa: Cache fresh está sendo retornado.
Solução:
Cache Strict Mode¶
Se você quer garantir que o cache sempre corresponda à versão atual do agrobr:
Com strict mode ativo, qualquer entrada de cache gravada por uma versão diferente do agrobr é ignorada (cache miss). Útil em ambientes de produção onde consistência é mais importante que performance.
Problemas com Polars¶
ImportError: polars not found¶
Causa: Polars não instalado.
Solução:
Conversão Falha¶
Causa: Tipos incompatíveis na conversão pandas → polars.
Solução: Use pandas (default) e converta manualmente se necessário.
Problemas com CLI¶
Comando não encontrado: agrobr¶
Causa: CLI não instalada no PATH.
Soluções:
- Verifique instalação:
- Reinstale:
- Use via Python:
Encoding no Windows¶
Causa: Terminal não suporta UTF-8.
Solução:
# PowerShell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# Ou exporte para arquivo
agrobr cepea indicador soja --formato csv > soja.csv
Debug¶
Habilitar Logs Detalhados¶
# Via CLI
agrobr --log-level DEBUG cepea soja
# Via código
import logging
logging.basicConfig(level=logging.DEBUG)
Ver Configuração Atual¶
Verificar Health das Fontes¶
Inspecionar Cache¶
Reportando Bugs¶
Se o problema persistir:
- Verifique se já existe issue: https://github.com/bruno-portfolio/agrobr/issues
- Colete informações:
- Abra issue com:
- Versão do Python e agrobr
- Sistema operacional
- Código que causa o erro
- Mensagem de erro completa
- Logs de debug (se possível)
FAQ¶
O agrobr funciona em Jupyter?¶
Sim! Use a versão async diretamente:
Ou a versão sync:
Posso usar com proxies?¶
Atualmente não há suporte nativo. Considere configurar proxy a nível de sistema.
Os dados são gratuitos?¶
Sim, todas as fontes são públicas e gratuitas. O agrobr apenas facilita o acesso.
Com que frequência os dados são atualizados?¶
| Fonte | Frequência |
|---|---|
| CEPEA | Diária (~18h) |
| CONAB | Mensal |
| IBGE PAM | Anual |
| IBGE LSPA | Mensal |