373 sintomas catalogados
Cada sintoma com causa provável e correção, ligado à lição da trilha Desenvolvimento que explica o porquê. Descreva o sintoma para filtrar.
| Sintoma | Causa provável | Correção | Lição |
|---|---|---|---|
| Alias não funciona | Erro de digitação ou configuração no arquivo errado | Verifique com 'git config --get-regexp ^alias\.' e corrija o comando | Aliases, hooks e configuração global: Git do seu jeito |
| Hook não é executado | Permissão de execução ausente ou script salvo com extensão .sample | Renomeie para o nome correto e rode 'chmod +x' | Aliases, hooks e configuração global: Git do seu jeito |
| Configuração global não é aplicada | Configuração local sobrescreve a global | Use 'git config --list --show-origin' para identificar conflitos e ajuste o escopo | Aliases, hooks e configuração global: Git do seu jeito |
| Cluster não aceita novas escritas após falha de zona | Perda de quorum do etcd | Restaure quorum adicionando nós etcd em zonas restantes | Alta disponibilidade em clusters distribuídos: o que funcion |
| Pods não realocados após falha de nó | Affinity/anti-affinity mal configurado ou storage não disponível em outras zonas | Revise regras de afinidade e storage class | Alta disponibilidade em clusters distribuídos: o que funcion |
| Control plane indisponível após falha de load balancer | Load balancer único ou sem health check | Implemente load balancer redundante e health checks | Alta disponibilidade em clusters distribuídos: o que funcion |
| Recebe 401 ao acessar endpoint protegido | Token JWT ausente ou inválido | Verifique geração e envio do token no header Authorization | API de cadastro de clientes: CRUD completo com autenticação |
| Erro 422 Unprocessable Entity | Dados enviados não passam na validação Pydantic | Revise tipos, formatos e restrições dos campos | API de cadastro de clientes: CRUD completo com autenticação |
| Senha aparece na resposta da API | response_model não está configurado corretamente | Garanta que response_model exclui campos sensíveis | API de cadastro de clientes: CRUD completo com autenticação |
| Endpoint não aparece na documentação | Router não incluído no app principal ou prefixo incorreto | Verifique se o include_router foi chamado corretamente | API modular: como dividir para escalar e manter |
| Configuração de banco errada em um módulo | Variável de ambiente não lida pelo BaseSettings do módulo | Confirme nomes das variáveis e carregamento do settings | API modular: como dividir para escalar e manter |
| Middleware não afeta todos os endpoints | Middleware registrado apenas em módulo, não no app principal | Registre middlewares sempre no app principal | API modular: como dividir para escalar e manter |
| Usuário vê dados de outro tenant | Filtro de tenant ausente em queries | Revisar todas as consultas e garantir uso de tenant_id | Aplicação multi-tenant: desafios e soluções com Django |
| Erro de schema inexistente ao criar tenant | Schema não criado ou migrations não aplicadas | Automatizar criação de schema e rodar migrations | Aplicação multi-tenant: desafios e soluções com Django |
| Webhooks caem no tenant errado | Identificador de tenant ausente no endpoint ou payload | Inclua tenant_id em todos os endpoints e valide no backend | Aplicação multi-tenant: desafios e soluções com Django |
| API trava ou responde lentamente sob carga | Dependências ou drivers síncronos bloqueando threads | Converta dependências para async e troque drivers por versões assíncronas | Async de verdade: concorrência e performance máxima no FastA |
| Erros de conexão com o banco | Excesso de sessões simultâneas ou pool mal configurado | Ajuste poolclass e limite número de conexões | Async de verdade: concorrência e performance máxima no FastA |
| Latência alta mesmo com async | Funções CPU-bound ou dependências sync | Separe tarefas CPU-bound em workers separados, revise dependências | Async de verdade: concorrência e performance máxima no FastA |
| locust não gera carga suficiente | Configuração de usuários ou spawn rate baixa | Aumente o número de usuários simulados e a taxa de criação | Async de verdade: concorrência e performance máxima no FastA |
| Erro 'Django ORM não é async safe' | Tentativa de usar ORM em async view | Mova operações ORM para views síncronas ou consulte a documentação para alternativas. | Async views, WebSockets e Django Channels: aplicações reativ |
| WebSocket desconecta imediatamente | Consumer não aceita conexão | Garanta que o método connect() chama await self.accept(). | Async views, WebSockets e Django Channels: aplicações reativ |
| Erro 'No module named channels' | Channels não instalado | Execute 'pip install channels'. | Async views, WebSockets e Django Channels: aplicações reativ |
| Mensagem não recebida no WebSocket | Roteamento incorreto | Verifique websocket_urlpatterns e paths em routing.py. | Async views, WebSockets e Django Channels: aplicações reativ |
| Usuário não consegue acessar rota protegida | Não está autenticado ou não possui permissão | Verifique login e permissões atribuídas | Autenticação e autorização: protegendo rotas e recursos |
| API retorna 401 mesmo com token | Token inválido ou não enviado corretamente | Confirme header Authorization e validade do token | Autenticação e autorização: protegendo rotas e recursos |
| Permissão não tem efeito | Permissão não atribuída corretamente ao usuário ou grupo | Revise atribuição no admin ou código | Autenticação e autorização: protegendo rotas e recursos |
| Token inválido ou expirado | Token foi adulterado, expirou ou a chave secreta mudou | Verifique se o token está correto e a chave secreta não foi alterada | Autenticação JWT: login seguro sem reinventar a roda |
| 401 Unauthorized ao acessar endpoint protegido | Token não enviado ou mal formatado no header Authorization | Envie o token como 'Authorization: Bearer <token>' | Autenticação JWT: login seguro sem reinventar a roda |
| Token aceito mesmo após logout | Token não tem expiração curta ou não foi invalidado | Reduza o tempo de expiração e implemente blacklist se necessário | Autenticação JWT: login seguro sem reinventar a roda |
| Recebo 403 mesmo com token válido | Token não possui o escopo exigido pelo endpoint | Verifique os escopos no payload do JWT e ajuste a função de autorização | Autorização e CORS: só entra quem pode, do jeito certo |
| Frontend não consegue acessar a API | CORS não está configurado para o domínio do frontend | Adicione o domínio correto na lista allow_origins | Autorização e CORS: só entra quem pode, do jeito certo |
| Requisições autenticadas via browser funcionam de qualquer site | CORS está liberando origens demais ou allow_credentials está ativado sem necessidade | Restringa allow_origins e desabilite allow_credentials se possível | Autorização e CORS: só entra quem pode, do jeito certo |
| Nginx retorna erro 502 Bad Gateway | Containers Django não estão acessíveis no endereço ou porta configurados. | Verifique nomes dos serviços e portas no docker-compose e nginx.conf. | Balanceamento, múltiplos containers e persistência de dados |
| Dados somem após reiniciar containers | Banco de dados não está usando volume persistente. | Configure volumes corretamente no docker-compose. | Balanceamento, múltiplos containers e persistência de dados |
| Backup falha com erro de permissão | Usuário do banco não tem permissão de leitura. | Ajuste permissões do usuário PostgreSQL. | Balanceamento, múltiplos containers e persistência de dados |
| Página demora a carregar mesmo com poucos acessos | Consulta sem índice ou sem cache | Crie índice e ative cache | Banco lento, memória alta: identificando e resolvendo gargal |
| Uso de memória do banco cresce continuamente | Consultas retornando muitos dados ou vazamento de conexão | Limite selects e revise uso de conexões | Banco lento, memória alta: identificando e resolvendo gargal |
| Dados desatualizados na interface | Cache não invalidado após update | Implemente invalidação de cache | Banco lento, memória alta: identificando e resolvendo gargal |
| Cache não armazena dados | Redis não está rodando ou configuração errada em settings.py | Verifique se o serviço Redis está ativo e o endereço está correto | Cache, filas e workers: lidando com aumento de carga |
| Tarefas Celery não são executadas | Worker não iniciado ou broker indisponível | Inicie o worker e cheque a conexão com o Redis | Cache, filas e workers: lidando com aumento de carga |
| Tempo de resposta da view não melhora | Cache não está sendo usado corretamente (decorator faltando ou TTL baixo) | Confirme uso de @cache_page e ajuste o timeout | Cache, filas e workers: lidando com aumento de carga |
| Cache não é compartilhado entre workers | Uso de cache em memória em ambiente multiprocessado | Migre para cache distribuído com Redis | Cache: diminuindo latência sem perder consistência |
| Dados desatualizados após atualização | Falta de invalidação manual ou TTL muito longo | Implemente invalidação ao atualizar ou reduza o TTL | Cache: diminuindo latência sem perder consistência |
| Redis não responde | Servidor Redis parado ou inacessível | Verifique status do serviço e conectividade de rede | Cache: diminuindo latência sem perder consistência |
| Erro de conexão ao banco nos testes do CI | Serviço Postgres não está pronto ou variável DATABASE_URL incorreta | Ajuste healthcheck e certifique-se que a variável DATABASE_URL aponta para localhost no runner | CI/CD com Git e Docker: pipelines que não quebram em produçã |
| Gunicorn não inicia no container | CMD mal formatado ou argumento --bind sem aspas/lista | Use CMD como lista ou coloque aspas em --bind | CI/CD com Git e Docker: pipelines que não quebram em produçã |
| Deploy não atualiza o código | git pull não foi executado ou branch errada | Confirme branch e execute git pull antes do compose | CI/CD com Git e Docker: pipelines que não quebram em produçã |
| Pipeline falha na etapa de build Docker | Dockerfile com erro ou dependências ausentes | Revise o Dockerfile e garanta que todas as dependências estão no requirements.txt | CI/CD com GitHub Actions: do push ao deploy sem dor |
| Testes não são executados | Diretório tests/ ausente ou pytest não instalado | Crie o diretório tests/ e adicione pytest às dependências | CI/CD com GitHub Actions: do push ao deploy sem dor |
| Deploy não sobe após push | Erro de sintaxe no docker-compose.yml ou portas ocupadas | Valide o docker-compose.yml e libere as portas necessárias | CI/CD com GitHub Actions: do push ao deploy sem dor |
| Rollback não funciona | Imagem anterior não disponível | Garanta versionamento das imagens Docker e mantenha pelo menos uma versão estável disponível | CI/CD com GitHub Actions: do push ao deploy sem dor |
| Pods permanecem pendentes mesmo com autoscaler ativo | Requests de recursos acima da capacidade máxima do node group ou restrições de afinidade | Ajuste requests dos pods ou aumente o tamanho máximo do node group | Cluster Autoscaler: aumentando e reduzindo nodes automaticam |
| Nodes não são removidos mesmo ociosos | Pods não podem ser desalocados (ex: uso de storage local ou podDisruptionBudget restritivo) | Reconfigure pods para permitir desalocação ou ajuste as políticas de PDB | Cluster Autoscaler: aumentando e reduzindo nodes automaticam |
| Autoscaler não consegue criar novos nodes | Permissões insuficientes ou limites do provedor atingidos | Revise permissões RBAC e limites de recursos no provedor | Cluster Autoscaler: aumentando e reduzindo nodes automaticam |
| Commits grandes e confusos | Alterações não separadas antes do commit | Use 'git add -p' para dividir em partes menores | Commits atômicos, mensagens claras e revisão de código |
| Mensagens de commit vagas | Falta de padrão ou pressa | Padronize com tipo(escopo): descrição | Commits atômicos, mensagens claras e revisão de código |
| Histórico poluído após push | Reescrita de histórico em branch compartilhada | Evite rebase/amend após push em branches públicas | Commits atômicos, mensagens claras e revisão de código |
| Dificuldade em identificar bugs antigos | Commits mistos ou sem descrição | Mantenha commits atômicos e mensagens detalhadas | Commits atômicos, mensagens claras e revisão de código |
| Merge falha com mensagem de conflito | Alterações incompatíveis na mesma linha em branches diferentes | Edite o arquivo, remova as marcações do conflito, salve e faça commit | Commits, branches e merges: como o Git organiza o caos |
| Commit não aparece no branch principal após merge | Merge não foi realizado ou foi abortado | Repita o merge e finalize com commit | Commits, branches e merges: como o Git organiza o caos |
| SHA-1 do commit muda inesperadamente | Rebase ou alteração do histórico (ex: git commit --amend) | Evite reescrever histórico compartilhado; use merge para preservar integridade | Commits, branches e merges: como o Git organiza o caos |
| Erro 'Permission denied (publickey)' ao usar SSH | Chave SSH não cadastrada no GitHub ou permissão errada no arquivo | Adicione a chave pública ao GitHub e garanta permissão 600 na chave privada | Conectando ao GitHub: SSH vs HTTPS sem dor de cabeça |
| Git pede senha ou token a cada push com HTTPS | Cache de credenciais não configurado ou expirado | Configure o credential.helper com timeout adequado | Conectando ao GitHub: SSH vs HTTPS sem dor de cabeça |
| Erro 'Could not read from remote repository' | URL do remoto está errada ou conexão bloqueada | Verifique o endereço remoto com 'git remote -v' e acesso à internet | Conectando ao GitHub: SSH vs HTTPS sem dor de cabeça |
| Pod falha ao iniciar com erro de variável ausente | ConfigMap ou Secret não existe ou chave incorreta | Verifique nomes e chaves no YAML e reimplante o pod | ConfigMaps e Secrets: separando configuração do código |
| Segredo aparece em texto claro ao listar Secrets | Valores não estão em base64 ou encryption at rest não habilitada | Codifique os valores em base64 e habilite encryption at rest no etcd | ConfigMaps e Secrets: separando configuração do código |
| Usuários não autorizados conseguem ler Secrets | Permissões RBAC mal configuradas | Restrinja RBAC para leitura e alteração de Secrets | ConfigMaps e Secrets: separando configuração do código |
| Erro 'FATAL: password authentication failed for user' | Senha ou usuário incorretos no settings.py ou permissões insuficientes no PostgreSQL. | Revise a senha e permissões do usuário no banco e no settings.py. | Configuração inicial do PostgreSQL: por que e como conectar |
| Erro 'could not connect to server: Connection refused' | PostgreSQL não está rodando ou firewall bloqueando porta. | Verifique se o serviço está ativo com 'sudo systemctl status postgresql' e revise regras de firewall. | Configuração inicial do PostgreSQL: por que e como conectar |
| Erro 'relation does not exist' ao rodar queries | Migrações não foram aplicadas corretamente. | Rode 'python manage.py migrate' novamente e verifique logs. | Configuração inicial do PostgreSQL: por que e como conectar |
| Arquivo ignorado continua aparecendo no git status | Arquivo já estava versionado antes de ser adicionado ao .gitignore | Remova do índice com 'git rm --cached arquivo' | Configurando arquivos essenciais: .gitignore, .gitattributes |
| Conflitos de final de linha em times multiplataforma | Falta de configuração de EOL no .gitattributes | Adicione regras de EOL apropriadas ao .gitattributes | Configurando arquivos essenciais: .gitignore, .gitattributes |
| README.md não renderiza corretamente no GitHub | Sintaxe Markdown incorreta | Revise a sintaxe conforme www.markdownguide.org | Configurando arquivos essenciais: .gitignore, .gitattributes |
| O endpoint nunca responde | Timeout não configurado ou bloqueio por chamada síncrona. | Defina timeout explícito e use sempre async/await. | Consumindo APIs externas com httpx: integração sem bloqueios |
| Erro 502 ao consumir API externa | API externa retornou erro de status ou está fora do ar. | Implemente tratamento de exceções específicas e monitore logs. | Consumindo APIs externas com httpx: integração sem bloqueios |
| Alto consumo de CPU sob carga | Funções síncronas bloqueando o event loop. | Reescreva endpoints e integrações para async/await. | Consumindo APIs externas com httpx: integração sem bloqueios |
| Respostas inconsistentes após retries | Retries excessivos ou sem controle de backoff. | Implemente backoff exponencial e limite de tentativas. | Consumindo APIs externas com httpx: integração sem bloqueios |
| Nodes aparecem como 'NotReady' | Falha de comunicação entre kubelet e apiserver ou problemas de rede | Verifique logs do kubelet e conectividade de rede | Control Plane, Nodes e etcd: o que mantém seu cluster de pé |
| Comando kubectl trava ou retorna erro 500 | kube-apiserver indisponível ou etcd fora do ar | Reinicie o kube-apiserver e verifique status do etcd | Control Plane, Nodes e etcd: o que mantém seu cluster de pé |
| Pods não são agendados | scheduler parado ou recursos insuficientes nos nodes | Verifique status do scheduler e recursos disponíveis | Control Plane, Nodes e etcd: o que mantém seu cluster de pé |
| Clone local não mostra todo o histórico | Clone foi feito com --depth ou opção de shallow clone | Faça um clone completo sem --depth | Controle de versão distribuído: por que centralizado não bas |
| Erro ao enviar histórico para novo remoto | Permissões insuficientes ou URL incorreta | Verifique permissões e URL do novo remoto | Controle de versão distribuído: por que centralizado não bas |
| Hashes dos commits não batem entre clones | Histórico foi reescrito (rebase, filter-branch) | Evite reescrever histórico compartilhado | Controle de versão distribuído: por que centralizado não bas |
| Erro 'ModuleNotFoundError' ao rodar o servidor | App não registrado em INSTALLED_APPS | Adicione o app em minhaempresa/settings/base.py | Criando um projeto Django limpo: estrutura, apps e versionam |
| Arquivos .pyc versionados | .gitignore ausente ou mal configurado | Adicione '*.pyc' ao .gitignore e remova do Git | Criando um projeto Django limpo: estrutura, apps e versionam |
| Configuração errada entre ambientes | settings.py único para todos os ambientes | Separe settings em base.py, dev.py, prod.py | Criando um projeto Django limpo: estrutura, apps e versionam |
| Banco de dados local versionado | db.sqlite3 não está no .gitignore | Inclua db.sqlite3 no .gitignore e remova do Git | Criando um projeto Django limpo: estrutura, apps e versionam |
| Nada acontece ao salvar um formulário | Possível erro de validação não tratado ou método POST não implementado | Verifique se está usando request.method == 'POST' e se está tratando form.is_valid() | CRUD real: criando, lendo, atualizando e deletando dados |
| Erro de permissão ao tentar editar ou deletar | View sem restrição de acesso ou usuário não autenticado | Implemente decorators de permissão como login_required | CRUD real: criando, lendo, atualizando e deletando dados |
| Dados não aparecem na listagem | QuerySet filtrando incorretamente ou template não renderizando o contexto | Revise o filtro do QuerySet e o uso de {{ variavel }} no template | CRUD real: criando, lendo, atualizando e deletando dados |
| Formulário retorna erro 403 | Token CSRF ausente ou inválido | Inclua {% csrf_token %} e limpe o cache do navegador | CSRF, XSS e SQL Injection: entenda e bloqueie as ameaças clá |
| Scripts aparecem executados no navegador | Uso indevido de |safe em templates | Remova |safe e revise a origem dos dados | CSRF, XSS e SQL Injection: entenda e bloqueie as ameaças clá |
| Erro de SQL ao buscar dados | Concatenação de strings em queries | Use o ORM ou execute queries parametrizadas | CSRF, XSS e SQL Injection: entenda e bloqueie as ameaças clá |
| Não recebo e-mails de notificação | Filtro de spam ou notificações desativadas | Verifique filtros e configurações em Configurações > Notificações | Dashboards e notificações no GitHub: nunca seja pego de surp |
| Alertas de segurança não aparecem | Dependabot alerts desativados | Ative em Settings > Security & analysis | Dashboards e notificações no GitHub: nunca seja pego de surp |
| Builds não disparam no pull request | Workflow YAML com erro de sintaxe | Valide o arquivo YAML e consulte a documentação oficial | Dashboards e notificações no GitHub: nunca seja pego de surp |
| Notificações demais (ruído) | Configuração excessivamente ampla | Reduza o nível de watch ou personalize eventos | Dashboards e notificações no GitHub: nunca seja pego de surp |
| Pod não comunica com outro serviço | NetworkPolicy bloqueando tráfego | Ajustar regras de NetworkPolicy para liberar o tráfego necessário | Debug do cluster: ferramentas nativas e análise de rede |
| kubectl lento ou recursos inconsistentes | Problema no etcd ou control plane | Verificar saúde do etcd e logs do apiserver | Debug do cluster: ferramentas nativas e análise de rede |
| Sem logs no container | Container crasha antes de gerar log | Usar kubectl debug com ephemeral container para investigar | Debug do cluster: ferramentas nativas e análise de rede |
| Logs não mostram detalhes do erro | Nível de log insuficiente ou configuração incorreta | Ajuste para --log-level info ou warning e revise handlers | Debugging real: logs, stack traces e profiling em produção |
| Stack trace ausente nos logs | Exceção capturada e não logada | Garanta que exceções sejam logadas explicitamente | Debugging real: logs, stack traces e profiling em produção |
| py-spy não consegue acessar o processo | Permissões insuficientes ou PID incorreto | Execute como root ou ajuste permissões, confirme o PID | Debugging real: logs, stack traces e profiling em produção |
| PVC fica em estado 'Pending' | Não há PV compatível disponível ou erro de configuração no StorageClass. | Verifique se o PV existe, está disponível e se os parâmetros (acesso, tamanho) batem com o PVC. | Definindo storage e persistência: volumes, PVs e PVCs |
| Pod não monta o volume | Problema de permissão ou conectividade com o storage backend. | Verifique logs do pod, permissões NFS e conectividade de rede. | Definindo storage e persistência: volumes, PVs e PVCs |
| Dados somem após reiniciar o pod | Volume efêmero usado em vez de PV/PVC. | Confirme se o pod está usando o PVC correto e se o PV está configurado como persistente. | Definindo storage e persistência: volumes, PVs e PVCs |
| Pods em CrashLoopBackOff | Imagem incorreta ou variável de ambiente faltando | Verifique o campo image e as variáveis no YAML, corrija e reaplique. | Deploy de aplicações: YAMLs, kubectl apply e rollout control |
| Rollout travado | Problema de saúde nos novos pods | Use 'kubectl describe pod' para ver eventos e corrija o erro identificado. | Deploy de aplicações: YAMLs, kubectl apply e rollout control |
| Service não responde | Selector do Service não bate com labels do Deployment | Ajuste os labels no YAML para garantir correspondência. | Deploy de aplicações: YAMLs, kubectl apply e rollout control |
| README.md não aparece na página do repositório | Arquivo não está na raiz ou nome incorreto | Renomeie para README.md e faça push na raiz | Documentação viva: Markdown, Wiki e templates no GitHub |
| Templates de issue não aparecem | Arquivos em local errado ou formato inválido | Coloque em .github/ISSUE_TEMPLATE/ e valide sintaxe YAML | Documentação viva: Markdown, Wiki e templates no GitHub |
| Wiki não pode ser editado | Permissões insuficientes no repositório | Peça acesso de escrita ao administrador | Documentação viva: Markdown, Wiki e templates no GitHub |
| Endpoint retorna erro 500 ao criar usuário | Possível mistura de lógica de negócio e acesso a dados no router | Separe regras de negócio no service e queries no repository | Domain-driven design: organizando lógica e endpoints sem bag |
| Dados inconsistentes entre entrada e saída | Esquemas Pydantic não estão configurados com orm_mode | Adicione 'orm_mode = True' na Config do esquema de saída | Domain-driven design: organizando lógica e endpoints sem bag |
| Mudança no banco quebra vários endpoints | Endpoints acoplados diretamente ao modelo | Use repository para abstrair queries e service para lógica | Domain-driven design: organizando lógica e endpoints sem bag |
| Erro 422 ao acessar endpoint | Tipo de parâmetro incompatível ou ausente | Verifique se os tipos e nomes dos parâmetros batem com o modelo e a rota. | Endpoints RESTful com FastAPI: do path ao response model |
| Resposta não segue o modelo esperado | response_model ausente ou retorno incompatível | Adicione ou corrija o response_model e ajuste o retorno da função. | Endpoints RESTful com FastAPI: do path ao response model |
| Status code incorreto na resposta | Status não definido explicitamente | Defina status_code no decorator ou use JSONResponse com o código correto. | Endpoints RESTful com FastAPI: do path ao response model |
| Erro 500 ao acessar qualquer página | ALLOWED_HOSTS vazio ou incorreto | Inclua o domínio/IP correto em ALLOWED_HOSTS no settings.py | Erros comuns de deploy: debugando 500, 404, 403 e stack trac |
| Erro 404 para arquivos estáticos | STATIC_ROOT não configurado ou arquivos não coletados | Configure STATIC_ROOT e execute python manage.py collectstatic | Erros comuns de deploy: debugando 500, 404, 403 e stack trac |
| Erro 403 ao enviar formulário | Token CSRF ausente ou inválido | Inclua {% csrf_token %} nos formulários | Erros comuns de deploy: debugando 500, 404, 403 e stack trac |
| Stack trace mostra 'TemplateDoesNotExist' | Template não existe ou diretório não configurado | Verifique o caminho em TEMPLATES['DIRS'] e a existência do arquivo | Erros comuns de deploy: debugando 500, 404, 403 e stack trac |
| Logs vazios mesmo com erro | LOGGING mal configurado | Revise o dicionário LOGGING no settings.py | Erros comuns de deploy: debugando 500, 404, 403 e stack trac |
| Pod não inicia após falha de node | Volume persistente não está disponível em outro node. | Verifique se o storage suporta reanexação em múltiplos nodes ou use storage em rede. | Escalabilidade de aplicações stateful: desafios e soluções |
| ReplicaSet do banco não forma cluster | Headless Service ou DNS mal configurado. | Revise o YAML do Service e o DNS dos Pods. | Escalabilidade de aplicações stateful: desafios e soluções |
| Lag de replicação alto | Storage lento ou rede saturada. | Ajuste o backend de storage ou monitore a rede. | Escalabilidade de aplicações stateful: desafios e soluções |
| Pods falham ao iniciar com erro de recursos insuficientes. | Cotas ou limites muito restritivos no namespace. | Revise as definições de ResourceQuota e LimitRange. | Escolhas de topologia: single cluster, multi-cluster e names |
| Usuário não consegue acessar recursos do namespace. | Role ou rolebinding ausente ou mal configurado. | Verifique se o rolebinding referencia um role existente e revise as permissões. | Escolhas de topologia: single cluster, multi-cluster e names |
| Workloads de um time impactam a performance de outros. | Falta de cotas ou limites adequados. | Implemente ResourceQuota e LimitRange nos namespaces afetados. | Escolhas de topologia: single cluster, multi-cluster e names |
| A documentação automática não aparece em /docs. | FastAPI ou Uvicorn não instalados corretamente. | Reinstale ambos com pip e confira se está rodando a versão correta do Python. | FastAPI na prática: por que ele virou referência em APIs Pyt |
| Erro 422 ao enviar dados. | Dados enviados não batem com o modelo Pydantic. | Revise o JSON enviado e os tipos declarados no modelo. | FastAPI na prática: por que ele virou referência em APIs Pyt |
| API não responde em modo assíncrono. | Funções não declaradas como async ou servidor WSGI usado. | Garanta que endpoints usam async def e rode com Uvicorn (ASGI). | FastAPI na prática: por que ele virou referência em APIs Pyt |
| Erro 'Permission denied (publickey)' ao usar SSH | Chave pública não cadastrada ou chave privada em local errado | Verifique se a chave pública está no GitHub e se o arquivo privado está em ~/.ssh | Gerenciamento de chaves SSH e tokens: não entregue seu códig |
| Token de acesso não funciona | Escopo insuficiente ou token expirado | Gere um novo token com os escopos necessários e valide a expiração | Gerenciamento de chaves SSH e tokens: não entregue seu códig |
| Chave privada pedindo senha a cada uso | ssh-agent não está rodando ou chave não adicionada ao agente | Inicie o ssh-agent e adicione a chave com ssh-add | Gerenciamento de chaves SSH e tokens: não entregue seu códig |
| .env foi versionado por engano | Arquivo não estava no .gitignore | Adicione .env ao .gitignore e remova do histórico usando 'git rm --cached .env' | Gerenciamento de segredos e variáveis sensíveis: o que nunca |
| Django não encontra variáveis do .env | Arquivo .env está fora do diretório correto ou variável não definida | Confirme o caminho do .env e as chaves necessárias | Gerenciamento de segredos e variáveis sensíveis: o que nunca |
| Erro de autenticação no banco após rotação de senha | Senha antiga ainda está em uso no .env ou no ambiente | Atualize todas as referências e reinicie os serviços | Gerenciamento de segredos e variáveis sensíveis: o que nunca |
| Pacote não encontrado ao rodar o projeto. | Ambiente virtual não ativado. | Ative o ambiente virtual com 'source venv/bin/activate' antes de rodar o projeto. | Gerenciando dependências: requirements, virtualenv e pip |
| Erro de versão de pacote. | requirements.txt desatualizado ou modificado manualmente. | Regere o arquivo com 'pip freeze > requirements.txt' após instalar/remover pacotes. | Gerenciando dependências: requirements, virtualenv e pip |
| pip não reconhecido como comando. | pip não instalado ou ambiente virtual não ativado. | Consulte a documentação para instalar o pip e ative o ambiente virtual. | Gerenciando dependências: requirements, virtualenv e pip |
| Arquivo grande não faz download ao clonar | Git LFS não instalado ou não inicializado | Execute 'git lfs install' e tente novamente | Gerenciando grandes volumes: LFS, shallow clones e filtros |
| Arquivo ignorado aparece no git status | .gitignore mal configurado ou arquivo já versionado | Ajuste o .gitignore e remova o arquivo do controle com 'git rm --cached' | Gerenciando grandes volumes: LFS, shallow clones e filtros |
| Erro ao dar push em arquivos LFS | Servidor remoto não suporta LFS ou limite de armazenamento atingido | Consulte a documentação do servidor e revise limites | Gerenciando grandes volumes: LFS, shallow clones e filtros |
| Conflito ao reverter commit | Código mudou após o commit revertido | Resolva o conflito manualmente, finalize o revert com git commit | Gerenciando incidentes: quando um bug crítico exige rollback |
| Revert não removeu o bug | Commit errado foi revertido | Identifique o commit correto com git bisect e repita o processo | Gerenciando incidentes: quando um bug crítico exige rollback |
| Push rejeitado pelo remoto | Histórico local diverge do remoto | Atualize com git pull --rebase antes de push | Gerenciando incidentes: quando um bug crítico exige rollback |
| Workflow não aparece na aba Actions | Arquivo YAML mal formatado ou fora da pasta correta | Verifique a sintaxe YAML e se o arquivo está em .github/workflows | GitHub Actions: automatizando testes, builds e deploys |
| Step falha com erro de permissão | Secrets não configurados ou variáveis de ambiente ausentes | Configure os secrets em Settings > Secrets do repositório | GitHub Actions: automatizando testes, builds e deploys |
| Deploy não atualiza o servidor | Chave SSH inválida ou usuário sem permissão | Revise a chave SSH e permissões do usuário remoto | GitHub Actions: automatizando testes, builds e deploys |
| Mudança feita no Git não refletiu no ambiente | Pipeline falhou ou agente não está monitorando o repositório | Verifique logs do GitHub Actions e status do agente | GitOps e fluxos declarativos: infraestrutura como código via |
| Secrets vazaram em logs | Secrets não foram configurados corretamente | Armazene segredos apenas em GitHub Secrets e nunca faça echo deles | GitOps e fluxos declarativos: infraestrutura como código via |
| Merge direto na branch principal sem revisão | Branch protection não está habilitado | Configure branch protection no repositório | GitOps e fluxos declarativos: infraestrutura como código via |
| Readiness sempre retorna 503 | Dependência externa (banco, cache) indisponível ou erro na checagem. | Verifique logs e a configuração de conexão. | Health checks e readiness: o que entregar para orquestradore |
| Liveness demora a responder | Lógica pesada ou bloqueante no endpoint. | Simplifique a checagem para apenas confirmar que o processo está vivo. | Health checks e readiness: o que entregar para orquestradore |
| Orquestrador nunca envia tráfego | Readiness endpoint nunca retorna 200. | Confirme se as checagens refletem o estado real e se as dependências estão acessíveis. | Health checks e readiness: o que entregar para orquestradore |
| Pod reiniciando em loop | livenessProbe agressiva ou endpoint não responde | Ajuste initialDelaySeconds, periodSeconds ou corrija o endpoint | Health checks: liveness, readiness e startup probes |
| Pod nunca recebe tráfego | readinessProbe sempre falha | Verifique o endpoint, aumente delays ou corrija dependências externas | Health checks: liveness, readiness e startup probes |
| StartupProbe nunca passa | Aplicação demora mais que o failureThreshold | Aumente failureThreshold ou otimize o tempo de startup | Health checks: liveness, readiness e startup probes |
| Erro: 'Error: could not find tiller' | Versão antiga do Helm (v2) tentando conectar ao Tiller, que não existe mais no Helm 3. | Atualize para o Helm 3 e remova referências ao Tiller. | Helm charts: gerenciamento de aplicações complexas via templ |
| Falha ao instalar chart: 'no matches for kind' | Chart usa recursos não suportados pela versão do seu cluster Kubernetes. | Atualize o cluster ou use um chart compatível. | Helm charts: gerenciamento de aplicações complexas via templ |
| Valores não aplicados após upgrade | Arquivo values.yaml não foi referenciado corretamente ou flag --set malformada. | Verifique sintaxe e se está usando o arquivo/flag correto. | Helm charts: gerenciamento de aplicações complexas via templ |
| HPA não escala os pods | Metrics Server ausente ou sem permissão | Instale ou corrija o Metrics Server | Horizontal e Vertical Pod Autoscaler: dimensionamento automá |
| VPA não aplica recomendações | UpdateMode não está em 'Auto' ou permissões insuficientes | Ajuste o manifesto e as permissões | Horizontal e Vertical Pod Autoscaler: dimensionamento automá |
| Pods reiniciam inesperadamente com VPA | VPA precisa reiniciar pods para aplicar novos recursos | Planeje janelas de manutenção ou use updateMode 'Off' para só recomendar | Horizontal e Vertical Pod Autoscaler: dimensionamento automá |
| Respostas HTTP 502 Bad Gateway | Servidor WSGI (Gunicorn/uWSGI) não está rodando ou está mal configurado | Reinicie o servidor WSGI e verifique logs de erro | HTTP, WSGI e a base do web moderno: o que realmente acontece |
| Respostas HTTP 500 | Erro na aplicação Django | Cheque logs do Django e revise o código da view | HTTP, WSGI e a base do web moderno: o que realmente acontece |
| Respostas HTTP 404 inesperadas | URLs não configuradas corretamente no Django | Revise o arquivo urls.py e as rotas | HTTP, WSGI e a base do web moderno: o que realmente acontece |
| O redirecionamento para HTTPS não funciona | SECURE_SSL_REDIRECT não está ativo ou o proxy não envia X-Forwarded-Proto. | Confirme a configuração do proxy e do settings.py. | HTTPS, cookies e cabeçalhos seguros: blindando o transporte |
| Cookies de sessão aparecem sem flag Secure | SESSION_COOKIE_SECURE está em False ou ambiente de desenvolvimento. | Ative SESSION_COOKIE_SECURE e teste em produção. | HTTPS, cookies e cabeçalhos seguros: blindando o transporte |
| Cabeçalho Strict-Transport-Security ausente | SECURE_HSTS_SECONDS não está configurado ou valor muito baixo. | Defina SECURE_HSTS_SECONDS para pelo menos 31536000. | HTTPS, cookies e cabeçalhos seguros: blindando o transporte |
| A API não conecta ao banco de dados | String de conexão incorreta ou serviço 'db' não inicializado | Verifique variáveis de ambiente e se o serviço 'db' está rodando | Infra como código: provisionando ambientes reprodutíveis |
| Dados do banco somem após reiniciar containers | Volumes não configurados corretamente | Confirme se o volume 'db_data' está declarado e montado | Infra como código: provisionando ambientes reprodutíveis |
| Mudanças no código não refletem ao subir Compose | Imagem não foi rebuildada | Use '--build' ao rodar 'docker compose up' | Infra como código: provisionando ambientes reprodutíveis |
| Comando 'git' não encontrado | Git não instalado ou não está no PATH | Reinstale o Git e verifique as variáveis de ambiente | Instalando Git e configurando seu primeiro repositório |
| Commit falha com erro de configuração | user.name ou user.email não configurados | Configure ambos usando 'git config --global' | Instalando Git e configurando seu primeiro repositório |
| Arquivo não aparece no commit | Arquivo não foi adicionado ao stage | Use 'git add nome-do-arquivo' antes de commitar | Instalando Git e configurando seu primeiro repositório |
| Pods do kube-system em CrashLoopBackOff | Rede de pods não instalada ou parâmetros de kernel incorretos | Verifique instalação do CNI e parâmetros com sysctl | Instalando Kubernetes: kubeadm, minikube e alternativas livr |
| kubectl não conecta ao cluster | Arquivo de configuração ausente ou permissões erradas | Recrie ~/.kube/config conforme passo 4 | Instalando Kubernetes: kubeadm, minikube e alternativas livr |
| Nós em NotReady | Problemas de rede, firewall ou runtime de containers | Cheque logs do kubelet e conectividade entre nós | Instalando Kubernetes: kubeadm, minikube e alternativas livr |
| Pipeline falha ao aplicar manifests | Permissões insuficientes no ServiceAccount | Revise o ClusterRoleBinding e ajuste para o mínimo necessário | Integração com CI/CD: pipelines declarativos e deploy automa |
| Deploy usa imagem antiga | Pipeline não atualizou o manifest ou chart corretamente | Confirme o comando sed e a substituição da tag | Integração com CI/CD: pipelines declarativos e deploy automa |
| Erro de autenticação no kubectl | Kubeconfig ou token inválido ou mal configurado | Recrie o segredo e atualize as variáveis do pipeline | Integração com CI/CD: pipelines declarativos e deploy automa |
| Rollback não retorna ao estado anterior | Histórico de releases não disponível ou corrompido | Verifique o histórico do Helm e reconfigure o armazenamento de releases | Integração com CI/CD: pipelines declarativos e deploy automa |
| Timeout ou lentidão nas requisições FastAPI | O sistema legado está sobrecarregado ou não suporta conexões simultâneas. | Implemente filas e limite o número de conexões concorrentes. | Integração com sistemas legados: adaptadores e migração segu |
| Dados inconsistentes entre FastAPI e legado | Sincronização inadequada ou conflitos de escrita. | Implemente versionamento de registros e revise a estratégia de sincronização. | Integração com sistemas legados: adaptadores e migração segu |
| Erros de autenticação ao acessar o legado | Credenciais desatualizadas ou formato de autenticação incompatível. | Atualize as credenciais e adapte o método de autenticação no adaptador. | Integração com sistemas legados: adaptadores e migração segu |
| Erro de conexão com o banco | String de conexão incorreta ou banco offline | Verifique usuário, senha, host e se o banco está rodando | Integração com SQLAlchemy: persistência de dados sem gambiar |
| Erro: 'object is not iterable' ao usar get_db | Faltou usar yield na dependência | Garanta que get_db use yield e não return | Integração com SQLAlchemy: persistência de dados sem gambiar |
| Campo id não aparece na resposta | Modelo Pydantic de saída não tem orm_mode ou campo id | Adicione orm_mode e o campo id ao modelo de resposta | Integração com SQLAlchemy: persistência de dados sem gambiar |
| Job fica em estado 'BackoffLimitExceeded' | Comando do container falhou repetidas vezes. | Revise o comando, aumente o backoffLimit ou corrija erros no script. | Jobs, CronJobs e Operators: automatizando tarefas e operaçõe |
| CronJob não dispara Jobs conforme agendamento | Expressão cron inválida ou controlador de CronJob não está rodando. | Verifique a sintaxe do cron e o status do controlador com 'kubectl get pods -n kube-system'. | Jobs, CronJobs e Operators: automatizando tarefas e operaçõe |
| Operator não executa ações esperadas | Operator não está em execução ou CRD mal definido. | Confirme se o Operator está rodando e se o CRD foi aplicado corretamente. | Jobs, CronJobs e Operators: automatizando tarefas e operaçõe |
| kubectl apply não atualiza o recurso | Arquivo YAML igual ao estado atual ou erro de sintaxe | Revise o YAML e use 'kubectl diff -f arquivo.yaml' | kubectl e scripts: automação declarativa e imperativa |
| rollout status não finaliza | Problemas de imagem, readiness probe ou recursos insuficientes | Cheque logs do pod e eventos com 'kubectl describe pod' | kubectl e scripts: automação declarativa e imperativa |
| patch não altera o recurso | Sintaxe JSON incorreta ou campo inexistente | Consulte a documentação e valide o JSON antes | kubectl e scripts: automação declarativa e imperativa |
| O recurso federado não é criado em um dos clusters membros. | Cluster não foi adicionado corretamente à federation. | Rever o comando de join e os logs do controlador KubeFed. | Kubernetes além do cluster: federation, multicloud e edge |
| O deployment aparece, mas não há pods rodando. | Problema de permissões ou recursos insuficientes no cluster membro. | Verifique eventos com 'kubectl describe deployment' e ajuste permissões ou recursos. | Kubernetes além do cluster: federation, multicloud e edge |
| kubefedctl retorna erro de autenticação. | Kubeconfig ou contexto incorreto. | Confirme o contexto atual e as credenciais no kubeconfig. | Kubernetes além do cluster: federation, multicloud e edge |
| Logs não aparecem no console | Handler ou logger não configurado corretamente | Revise o LOGGING_CONFIG e garanta que 'console' está em root.handlers | Logs e inicialização: monitorando desde o primeiro request |
| Logs em JSON inválido (erro de parsing) | Aspas ausentes em %(message)s ou caracteres especiais não escapados | Coloque %(message)s entre aspas ou use formatter seguro para JSON | Logs e inicialização: monitorando desde o primeiro request |
| Hot reload não funciona | Flag --reload ausente ou erro de sintaxe no código | Adicione --reload ao comando e corrija erros de sintaxe | Logs e inicialização: monitorando desde o primeiro request |
| Logs não aparecem no arquivo | Permissão incorreta ou caminho inexistente | Verifique permissões e existência do diretório de logs. | Logs sem enrolação: configurando logging para produção |
| Arquivo de log cresce sem parar | Rotação de arquivos não configurada | Ajuste 'maxBytes' e 'backupCount' no handler. | Logs sem enrolação: configurando logging para produção |
| Logs de acesso ausentes | Middleware de acesso não implementado | Implemente e registre o middleware de acesso. | Logs sem enrolação: configurando logging para produção |
| git blame mostra autor 'Not Committed Yet' | Arquivo está modificado localmente e não foi commitado. | Faça commit das alterações ou use git blame em um commit específico. | Logs, blame e bisect: rastreando bugs até a raiz |
| git bisect não encontra commit do bug | Commits marcados como 'good' e 'bad' não delimitam corretamente o intervalo. | Revise os commits de referência e reinicie o bisect. | Logs, blame e bisect: rastreando bugs até a raiz |
| git log retorna muitos resultados irrelevantes | Filtros insuficientes ou uso de parâmetros genéricos. | Aplique filtros por autor, arquivo ou data. | Logs, blame e bisect: rastreando bugs até a raiz |
| Logs de pods não aparecem no destino centralizado | Fluentd não está rodando em todos os nós ou configuração incorreta do destino. | Verifique status do DaemonSet e revise o ConfigMap do Fluentd. | Logs, eventos e tracing: visão completa do que acontece no c |
| Eventos do Kubernetes somem rapidamente | Eventos não são persistidos, apenas mantidos em memória pela API. | Configure coleta automatizada de eventos via agente ou script. | Logs, eventos e tracing: visão completa do que acontece no c |
| Traces não aparecem no backend | Aplicação não instrumentada corretamente ou Collector não configurado. | Revise a instrumentação e a configuração do Collector. | Logs, eventos e tracing: visão completa do que acontece no c |
| Node não entra em estado Ready após upgrade | Versão incompatível do kubelet ou falha no restart | Verifique logs do kubelet em /var/log/syslog ou journalctl -u kubelet | Manutenção e atualização de clusters: ciclo de vida sem dor |
| Erro de certificado ao usar etcdctl | Caminho ou permissão dos certificados incorretos | Confirme os caminhos dos arquivos e permissões de leitura | Manutenção e atualização de clusters: ciclo de vida sem dor |
| Pods de sistema não sobem após upgrade | Plugin de rede (CNI) desatualizado ou incompatível | Atualize o CNI conforme a documentação da versão | Manutenção e atualização de clusters: ciclo de vida sem dor |
| Endpoint /metrics retorna 404 | prometheus_client não está rodando ou porta errada | Confirme que start_http_server está ativo e na porta correta | Métricas e tracing: enxergando o que acontece na sua API |
| Traces não aparecem no console | Instrumentação do OpenTelemetry ausente ou configuração errada | Verifique se FastAPIInstrumentor.instrument_app(app) foi chamado antes de rodar a aplicação | Métricas e tracing: enxergando o que acontece na sua API |
| Métricas não atualizam no Prometheus | Prometheus configurado para endpoint errado ou scrape interval muito alto | Ajuste o scrape_config do Prometheus para o endpoint correto e intervalo adequado | Métricas e tracing: enxergando o que acontece na sua API |
| O endpoint /metrics retorna 404. | URLs do django-prometheus não foram incluídas corretamente. | Verifique o include('django_prometheus.urls') no urls.py. | Métricas essenciais: coletando dados com Prometheus e Grafan |
| Prometheus não coleta métricas do Django. | O target no prometheus.yml está errado ou inacessível. | Ajuste o endereço e porta do target para corresponder ao serviço Django. | Métricas essenciais: coletando dados com Prometheus e Grafan |
| Dashboards do Grafana não mostram dados. | Fonte de dados do Prometheus não configurada ou consulta errada. | Confirme a URL da fonte de dados e revise as queries. | Métricas essenciais: coletando dados com Prometheus e Grafan |
| Dados inconsistentes após importação | Tipos de campo incompatíveis ou dados sujos | Ajuste scripts de importação e normalize dados antes de migrar | Migração de sistemas legados para Django: lições e armadilha |
| Erros de timezone em datas | Diferença entre timezone do legado e do Django | Padronize para UTC antes de importar | Migração de sistemas legados para Django: lições e armadilha |
| Queries lentas no Django | Falta de otimização no uso do ORM | Use select_related e prefetch_related | Migração de sistemas legados para Django: lições e armadilha |
| Commits aparecem com autor 'unknown' | Faltou mapear usuários no authors.txt | Adicione todos os usuários SVN no authors.txt e refaça a migração | Migração de SVN para Git: desafios e atalhos |
| Branches do SVN não aparecem no Git | Layout de branches diferente do padrão | Use --branches= e --tags= apontando para os diretórios corretos | Migração de SVN para Git: desafios e atalhos |
| Migração muito lenta ou falha em repositórios grandes | Limitações de performance do git svn | Migre por partes, valide a cada etapa e limpe refs desnecessárias | Migração de SVN para Git: desafios e atalhos |
| Pods reiniciando em loop | Configuração de ambiente ou volume ausente | Verifique variáveis e PersistentVolumes montados | Migração de workloads legados para Kubernetes: desafios e ap |
| Erro de conexão com banco | Service ou Secret mal configurado | Revise endpoints e credenciais | Migração de workloads legados para Kubernetes: desafios e ap |
| Latência aumentou após migração | Dependência externa ficou mais distante ou sem cache | Implemente cache local ou ajuste topologia de rede | Migração de workloads legados para Kubernetes: desafios e ap |
| Erro 422 inesperado ao enviar dados válidos | Tipos ou restrições no modelo Pydantic não correspondem ao payload | Revise os tipos e restrições dos campos no modelo | Modelagem com Pydantic: validando dados desde o início |
| Campos do ORM não aparecem na resposta | Faltou ativar orm_mode no modelo Pydantic | Adicione orm_mode = True em Config | Modelagem com Pydantic: validando dados desde o início |
| Validador customizado não executa | Decorador @validator ausente ou nome do campo errado | Verifique o nome do campo e a posição do decorador | Modelagem com Pydantic: validando dados desde o início |
| Consultas lentas mesmo após indexar | Índice não cobre o filtro real ou dados pouco seletivos | Reveja os campos indexados e use EXPLAIN para analisar o plano de execução | Modelando dados para escalar: escolhas que evitam dores futu |
| Erro de migração em produção | Migração não foi testada em ambiente idêntico ou há dados conflitantes | Teste sempre em homologação e revise dependências entre migrações | Modelando dados para escalar: escolhas que evitam dores futu |
| Relacionamento ManyToMany gerando consultas gigantes | Tabela intermediária muito grande sem filtro adequado | Adicione índices na tabela intermediária ou repense a modelagem | Modelando dados para escalar: escolhas que evitam dores futu |
| Branches divergentes com muitos conflitos | Branches de vida longa sem integração frequente | Integre e faça merges com frequência, reduza o tempo de vida das branches | Modelos de branching: Git Flow, trunk-based e GitHub Flow na |
| Bugs indo para produção rapidamente | Falta de revisão ou testes automatizados em trunk-based ou GitHub Flow | Implemente revisão obrigatória e pipelines de testes | Modelos de branching: Git Flow, trunk-based e GitHub Flow na |
| Merges demorados e complexos | Uso excessivo de branches paralelas no Git Flow | Simplifique o fluxo, reduza branches desnecessárias | Modelos de branching: Git Flow, trunk-based e GitHub Flow na |
| Build falha por dependência desatualizada | Submódulo não foi atualizado | Execute 'git submodule update --init --recursive' antes do build | Monorepo, multirepo e submódulos: quando cada um faz sentido |
| Clone do repositório monorepo é muito lento | Repositório grande demais para o fluxo atual | Considere usar 'git sparse-checkout' ou dividir em multirepos | Monorepo, multirepo e submódulos: quando cada um faz sentido |
| Histórico de commits confuso | Commits misturando múltiplos projetos | Padronize mensagens de commit e use branches dedicadas por projeto | Monorepo, multirepo e submódulos: quando cada um faz sentido |
| git status muito lento | Repositório grande demais para o hardware local | Use sparse-checkout ou aumente recursos de hardware | Monorepos de larga escala: lições do Google, Facebook e proj |
| Conflitos frequentes em merges | Múltiplas equipes alterando áreas próximas | Divida responsabilidades por subdiretórios e use revisões rigorosas | Monorepos de larga escala: lições do Google, Facebook e proj |
| Build global demorado | Sistema de build não incremental | Implemente Bazel ou Pants para builds parciais | Monorepos de larga escala: lições do Google, Facebook e proj |
| Pods não conseguem se comunicar entre nós | Plugin CNI mal configurado ou ausente | Reinstale ou reconfigure o plugin CNI conforme a documentação oficial | Networking no Kubernetes: DNS, Service Discovery e CNI |
| Resolução DNS falha nos pods | CoreDNS fora do ar ou Service DNS mal configurado | Verifique o status do Deployment CoreDNS e do Service kube-dns | Networking no Kubernetes: DNS, Service Discovery e CNI |
| Service não distribui tráfego entre pods | Endpoints desatualizados ou kube-proxy com falha | Cheque os endpoints do serviço e o status do kube-proxy | Networking no Kubernetes: DNS, Service Discovery e CNI |
| NetworkPolicy não tem efeito | Plugin CNI não suporta políticas de rede | Use um plugin compatível, como Calico ou Cilium | Networking no Kubernetes: DNS, Service Discovery e CNI |
| Erro 'async not supported' ao criar uma view assíncrona | Versão do Django anterior à 3.1 ou uso de middleware incompatível | Atualize o Django e revise middlewares instalados | Novidades do Django: recursos recentes e o que observar no r |
| Campo JSONField não disponível em modelos | Versão do Django inferior à 3.1 ou backend de banco não suportado | Atualize o Django e verifique suporte do banco | Novidades do Django: recursos recentes e o que observar no r |
| Testes quebram após atualização | Breaking changes na nova versão | Leia as notas de versão e ajuste o código conforme necessário | Novidades do Django: recursos recentes e o que observar no r |
| Erro de importação ao atualizar Pydantic | Sintaxe ou decorators antigos não suportados no Pydantic v2 | Atualize os modelos conforme a nova documentação | Novidades do FastAPI e do ecossistema: o que muda seu projet |
| Métricas Prometheus não aparecem | Middleware não adicionado corretamente | Revise a configuração do Instrumentator | Novidades do FastAPI e do ecossistema: o que muda seu projet |
| Cache não funciona em endpoints | Backend Redis não inicializado ou prefixo incorreto | Verifique conexão e prefixo no FastAPICache.init | Novidades do FastAPI e do ecossistema: o que muda seu projet |
| Página em branco ou erro 500 | Template não encontrado ou erro na view | Verifique o caminho do template e se a view está correta. | O padrão MTV: Models, Templates e Views na prática |
| Dados não aparecem no template | Contexto enviado pela view está vazio | Confirme se o queryset está correto e se há dados no banco. | O padrão MTV: Models, Templates e Views na prática |
| Erro de migração | Model mal definido ou dependências não resolvidas | Revise o model e rode novamente 'makemigrations'. | O padrão MTV: Models, Templates e Views na prática |
| Pods em estado CrashLoopBackOff | Erro na imagem ou comando do container. | Verifique logs com 'kubectl logs <nome-do-pod>' e ajuste a configuração. | Objetos fundamentais: Pods, Deployments e Services na prátic |
| Service não responde | Selector do Service não corresponde aos labels dos Pods. | Confirme os labels dos Pods e o selector do Service. | Objetos fundamentais: Pods, Deployments e Services na prátic |
| Número de Pods menor que o especificado no Deployment | Recursos insuficientes no cluster ou erro de agendamento. | Cheque eventos com 'kubectl describe deployment <nome>' e recursos disponíveis nos nós. | Objetos fundamentais: Pods, Deployments e Services na prátic |
| O hash retornado tem menos de 40 caracteres | Comando ou arquivo digitado incorretamente | Verifique se o arquivo existe e se o comando foi copiado corretamente | Objetos Git: blobs, trees e commits por dentro |
| O comando 'git cat-file -p <hash>' retorna erro | Hash não corresponde a um objeto existente | Confirme se o hash foi copiado corretamente e se o objeto foi criado | Objetos Git: blobs, trees e commits por dentro |
| Arquivo não aparece em .git/objects/ | Arquivo não foi adicionado ao Git | Execute 'git add <arquivo>' antes de buscar o objeto | Objetos Git: blobs, trees e commits por dentro |
| A documentação não mostra exemplos personalizados. | Exemplos podem estar definidos com a chave 'example' em vez de 'examples' ou fora da estrutura correta. | Use 'examples' (plural) conforme a especificação OpenAPI e consulte a documentação oficial do FastAPI. | OpenAPI: da especificação à documentação viva |
| Endpoints não aparecem na documentação. | Possível erro de importação ou endpoint não registrado. | Verifique se todos os endpoints estão definidos após a criação do app e sem erros de sintaxe. | OpenAPI: da especificação à documentação viva |
| A documentação interativa não carrega em produção. | As rotas docs_url ou redoc_url podem estar desabilitadas. | Habilite temporariamente as rotas para depuração ou consulte logs de inicialização. | OpenAPI: da especificação à documentação viva |
| kubectl apply retorna erro de sintaxe | YAML mal formatado ou schema inválido | Valide com kubeval antes de aplicar | Organização de manifests, versionamento e documentação |
| Não encontra arquivo de manifest na estrutura | Organização inconsistente ou nomes genéricos | Padronize diretórios e nomes conforme recomendado | Organização de manifests, versionamento e documentação |
| Histórico de mudanças perdido | Alterações feitas fora do Git | Nunca altere manifests sem versionar no Git | Organização de manifests, versionamento e documentação |
| Usuário não consegue fazer push no branch principal. | Branch protection ativada sem permissão de merge. | Inclua o usuário no time correto ou ajuste as regras de proteção. | Organizando equipes e permissões no GitHub |
| Colaborador externo vê mais repositórios do que deveria. | Permissão concedida na organização, não só no repositório. | Remova o usuário da organização e adicione apenas como colaborador externo. | Organizando equipes e permissões no GitHub |
| Admin consegue burlar branch protection. | Opção 'Include administrators' não marcada. | Edite a regra e marque 'Include administrators'. | Organizando equipes e permissões no GitHub |
| Deploy em ambiente errado | Trigger configurado para branch incorreto | Revise o campo 'branches' no YAML do workflow | Organizando múltiplos workflows e ambientes de deploy |
| Erro de permissão ao acessar secrets | Secret não cadastrado ou escopo incorreto | Cadastre o secret no ambiente correto em Settings > Secrets | Organizando múltiplos workflows e ambientes de deploy |
| Rollback não aparece na interface | workflow_dispatch ausente no YAML | Adicione 'on: workflow_dispatch:' no workflow de rollback | Organizando múltiplos workflows e ambientes de deploy |
| flake8 acusa muitos erros irrelevantes | Configuração inadequada do arquivo .flake8 | Revise o arquivo .flake8 e ajuste as regras conforme a equipe | Padrões de código e organização: linters, pep8 e revisão em |
| Pull request nunca é revisado | Falta de cultura de revisão ou ausência de responsáveis | Defina responsáveis por revisão e estabeleça política de merges | Padrões de código e organização: linters, pep8 e revisão em |
| Docstrings não aparecem no help() | Docstrings ausentes ou fora do padrão | Adicione docstrings em formato correto a todas as funções e classes | Padrões de código e organização: linters, pep8 e revisão em |
| O campo error não aparece nas respostas de erro | O modelo de resposta não está sendo usado corretamente no endpoint | Garanta que o response_model do FastAPI seja sempre EnvelopeModel e que o retorno siga a estrutura. | Padrões de resposta: consistência acima de tudo |
| O trace_id não é único por requisição | O trace_id está sendo gerado fora do escopo da requisição | Gere o trace_id dentro da função do endpoint ou via middleware. | Padrões de resposta: consistência acima de tudo |
| O cliente recebe listas ou objetos crus, sem envelope | Endpoints antigos não foram migrados para o padrão | Refatore todos os endpoints para usar o modelo de envelope. | Padrões de resposta: consistência acima de tudo |
| A resposta retorna todos os itens, ignorando paginação | Parâmetros offset/limit não aplicados corretamente na query | Verifique se os parâmetros estão sendo usados na consulta ao banco. | Paginação, filtros e ordenação: como evitar endpoints inchad |
| Filtros não funcionam ou retornam erro | Parâmetros opcionais não tratados corretamente | Confirme se os filtros só são aplicados quando definidos. | Paginação, filtros e ordenação: como evitar endpoints inchad |
| Ordenação gera erro de atributo | Campo passado em order_by não existe no modelo | Valide os campos permitidos antes de aplicar ordenação. | Paginação, filtros e ordenação: como evitar endpoints inchad |
| Submódulo aparece vazio após clone | Submódulos não foram inicializados | Execute 'git submodule update --init --recursive' | Particionando repositórios e otimizando clones em grandes eq |
| Sparse checkout não traz arquivos esperados | Diretórios não foram configurados corretamente | Revise o comando 'git sparse-checkout set' | Particionando repositórios e otimizando clones em grandes eq |
| Erro ao fazer merge em clone superficial | Histórico insuficiente para operação | Remova o depth com 'git fetch --unshallow' | Particionando repositórios e otimizando clones em grandes eq |
| Pod em CrashLoopBackOff | Erro de inicialização ou dependência externa indisponível | Corrija variáveis de ambiente, comandos de entrypoint ou dependências | Pod CrashLoopBackOff, OOMKilled e Pending: causas e soluções |
| Pod OOMKilled | Limite de memória insuficiente | Aumente o limit de memória no YAML do deployment | Pod CrashLoopBackOff, OOMKilled e Pending: causas e soluções |
| Pod Pending | Falta de recursos ou restrições de agendamento | Ajuste requests/limits ou revise tolerâncias e afinidades | Pod CrashLoopBackOff, OOMKilled e Pending: causas e soluções |
| Erro ao iniciar o projeto Django | Python não instalado ou versão incompatível | Consulte https://docs.python.org/ para instalar a versão suportada. | Por que Django? Comparando frameworks e entendendo a escolha |
| Admin não acessível | URLs do admin não incluídas no arquivo urls.py | Adicione 'path('admin/', admin.site.urls)' no urls.py. | Por que Django? Comparando frameworks e entendendo a escolha |
| Problemas de licença | Uso de dependências incompatíveis | Revise a licença de cada dependência e consulte a documentação oficial do Django. | Por que Django? Comparando frameworks e entendendo a escolha |
| Pod não reinicia após falha | Deployment não está configurado ou o controlador não está ativo | Verifique se o deployment foi criado corretamente com 'kubectl get deployments'. | Por que orquestrar containers: limites do Docker e o papel d |
| Não há balanceamento de carga | Service não foi criado | Crie um Service do tipo ClusterIP ou LoadBalancer para expor as réplicas. | Por que orquestrar containers: limites do Docker e o papel d |
| Atualização derruba o serviço | Deploy feito sem estratégia rolling update | Configure o deployment para rolling update no YAML. | Por que orquestrar containers: limites do Docker e o papel d |
| Métricas da aplicação não aparecem no Prometheus | ServiceMonitor mal configurado ou service sem label correto | Verifique labels e paths do ServiceMonitor e do service da aplicação | Prometheus e métricas: monitorando recursos e aplicações |
| Alertas não são disparados | PrometheusRule com expressão errada ou Alertmanager não configurado | Revise a expressão PromQL e o status do Alertmanager | Prometheus e métricas: monitorando recursos e aplicações |
| Prometheus consome muito disco | Retenção alta ou labels dinâmicos demais | Reduza a retenção e revise o uso de labels nas métricas | Prometheus e métricas: monitorando recursos e aplicações |
| Force push não está bloqueado em main | Regra de proteção de branch não configurada corretamente | Revise as regras em Settings > Branches e ative 'Do not allow force pushes' | Protegendo branches e histórico: force push, rebase e audito |
| Commits desapareceram após rebase | Rebase feito em branch já compartilhado | Recupere commits com 'git reflog' e reforce a política de rebase apenas local | Protegendo branches e histórico: force push, rebase e audito |
| Não consigo deletar branch protegido | Proteção de deleção ativada | Altere temporariamente a regra se a deleção for realmente necessária | Protegendo branches e histórico: force push, rebase e audito |
| Secrets continuam aparecendo em texto claro no etcd | Configuração de criptografia não aplicada corretamente | Revise o arquivo EncryptionConfiguration e reinicie o kube-apiserver | Protegendo secrets, imagens e supply chain |
| Deploy de imagem não aprovada foi aceito | Admission controller não está ativo ou configurado para o namespace | Verifique logs do webhook e labels do namespace | Protegendo secrets, imagens e supply chain |
| Escaneamento aponta CVEs críticos em imagens oficiais | Imagem está desatualizada | Atualize para uma tag mais recente e reescaneie | Protegendo secrets, imagens e supply chain |
| Pull request não aparece para revisão | Branch não foi enviado para o remoto ou PR não foi criado | Verifique com 'git push' e crie o PR manualmente no GitHub | Pull requests, issues e milestones: colaborando no GitHub |
| Issue sem template carregado | Arquivo de template está no local errado ou com nome incorreto | Confirme o caminho e nome: .github/ISSUE_TEMPLATE/ | Pull requests, issues e milestones: colaborando no GitHub |
| Milestone não mostra progresso | Issues e PRs não estão associadas à milestone | Edite cada issue/PR e vincule à milestone correta | Pull requests, issues e milestones: colaborando no GitHub |
| Rate limiting não bloqueia mesmo após exceder o limite | O contador está sendo armazenado apenas em memória local, e há múltiplas instâncias da API. | Implemente backend compartilhado como Redis para os contadores. | Rate limiting: protegendo sua API contra abuso |
| Todos os usuários são bloqueados ao mesmo tempo | O rate limiting está sendo aplicado globalmente, não por usuário ou IP. | Ajuste a chave do contador para considerar IP ou identificador do usuário. | Rate limiting: protegendo sua API contra abuso |
| Headers de rate limit não aparecem nas respostas | O middleware não está adicionando os headers corretamente. | Verifique se os headers estão sendo setados antes do return da resposta. | Rate limiting: protegendo sua API contra abuso |
| Usuário não consegue listar pods mesmo com Role atribuída | RoleBinding pode estar apontando para o namespace errado ou nome incorreto | Verifique os campos 'namespace' e 'name' no RoleBinding | RBAC, ServiceAccount e NetworkPolicy: controle de acesso na |
| Pod não acessa a API do Kubernetes | ServiceAccount não está especificada no spec do pod | Adicione 'serviceAccountName' correto no deployment | RBAC, ServiceAccount e NetworkPolicy: controle de acesso na |
| Pods não se comunicam após aplicar NetworkPolicy | NetworkPolicy está bloqueando todo o tráfego por padrão | Ajuste as regras de ingress/egress para liberar o mínimo necessário | RBAC, ServiceAccount e NetworkPolicy: controle de acesso na |
| git push falha com 'rejected' | Seu branch local está atrás do remoto. | Rode 'git pull' para atualizar antes de dar push novamente. | Repositórios locais vs remotos: fluxo de dados e sincronizaç |
| git fetch não mostra branches esperados | Remoto não configurado corretamente. | Verifique com 'git remote -v' e ajuste o endereço. | Repositórios locais vs remotos: fluxo de dados e sincronizaç |
| Arquivos não aparecem no remoto após push | Arquivos não foram adicionados ao staging ou commitados. | Use 'git status', depois 'git add' e 'git commit' antes do push. | Repositórios locais vs remotos: fluxo de dados e sincronizaç |
| Pod é terminado com OOMKilled | Limit de memória muito baixo para o workload real | Aumente o limit de memória baseado em métricas reais | Requests, Limits e Quality of Service: como o Kubernetes ger |
| Pod fica em Pending | Requests de recursos maiores que a capacidade disponível no nó | Reduza requests ou aumente a capacidade do cluster | Requests, Limits e Quality of Service: como o Kubernetes ger |
| Aplicação lenta | Limit de CPU muito baixo, causando throttling | Ajuste o limit de CPU para um valor compatível com a demanda da aplicação | Requests, Limits e Quality of Service: como o Kubernetes ger |
| git merge falha com mensagem de conflito | Alterações incompatíveis no mesmo arquivo | Edite os arquivos marcados, remova os marcadores e adicione ao stage | Resolvendo conflitos de merge e rebase sem perder trabalho |
| git rebase trava em conflito | Commits do rebase não aplicam limpo sobre a base | Resolva os conflitos, adicione os arquivos e continue com git rebase --continue | Resolvendo conflitos de merge e rebase sem perder trabalho |
| Commit feito com marcadores de conflito | Esquecimento de remover os delimitadores | Edite o arquivo, remova os marcadores, faça novo commit corringindo | Resolvendo conflitos de merge e rebase sem perder trabalho |
| git mergetool não abre | Mergetool não configurado ou não instalado | Configure com git config --global merge.tool <ferramenta> e instale o mergetool escolhido | Resolvendo conflitos de merge e rebase sem perder trabalho |
| Erro 404 ao acessar /api/livros/ | Router não incluído corretamente nas URLs. | Confirme se o include(router.urls) está em urlpatterns. | REST sem mágica: criando APIs com Django REST Framework |
| Resposta 'Authentication credentials were not provided.' | Permissão IsAuthenticated ativa sem autenticação. | Faça login ou forneça token/autenticação básica. | REST sem mágica: criando APIs com Django REST Framework |
| Campos ausentes ou errados no JSON da API | Serializer não define corretamente os campos. | Revise o atributo fields do serializer. | REST sem mágica: criando APIs com Django REST Framework |
| GET retorna dados diferentes a cada chamada sem alteração no recurso | Método GET está alterando estado ou depende de contexto não persistente | Garanta que GET seja apenas leitura e stateless | RESTful de verdade: recursos, métodos e status codes sem ach |
| POST cria múltiplos recursos idênticos ao ser repetido | POST não é idempotente por padrão | Use PUT para criação idempotente ou controle duplicidade no backend | RESTful de verdade: recursos, métodos e status codes sem ach |
| DELETE retorna 200 mas o recurso ainda existe | Recurso não foi removido corretamente | Verifique a lógica de remoção e retorne 404 se o recurso não existir | RESTful de verdade: recursos, métodos e status codes sem ach |
| O commit revertido ainda aparece no histórico | git revert não apaga commits, apenas adiciona um novo commit inverso | Verifique se o efeito desejado era apagar ou apenas desfazer as alterações | Revertendo, resetando e recuperando commits: desfazendo o in |
| Perdi alterações locais após reset --hard | reset --hard apaga alterações não commitadas | Sempre faça backup ou use git stash antes de resetar | Revertendo, resetando e recuperando commits: desfazendo o in |
| Não consigo recuperar commit apagado | O reflog expirou ou o repositório foi deletado | Recuperação só é possível enquanto o reflog existe localmente | Revertendo, resetando e recuperando commits: desfazendo o in |
| Hook não executa | Permissão de execução ausente | Rode chmod +x no script | Scripts com git hooks: automatizando o local antes do remoto |
| Hook ignora erros | Script não retorna exit 1 em falha | Garanta que exit 1 está presente após falhas | Scripts com git hooks: automatizando o local antes do remoto |
| Hook funciona só para um usuário | Hooks não versionados ou não copiados para todos | Automatize cópia dos hooks para todos do time | Scripts com git hooks: automatizando o local antes do remoto |
| Mensagem de erro não aparece | Script não imprime no stderr | Use echo para mensagens e exit 1 para falhas | Scripts com git hooks: automatizando o local antes do remoto |
| Pods serverless não escalam a zero | Configuração de autoscaling ou tráfego ativo residual | Revise as configurações de autoscaling e verifique conexões abertas. | Serverless, Service Mesh e extensões: o que está mudando no |
| Erro de comunicação entre serviços após mesh | Política de rede ou mTLS incompatível | Ajuste as regras de PeerAuthentication e DestinationRule. | Serverless, Service Mesh e extensões: o que está mudando no |
| Operator consome CPU excessiva | Loop de reconciliação ou falha de lógica | Revise logs do Operator e ajuste o código ou parâmetros. | Serverless, Service Mesh e extensões: o que está mudando no |
| Arquivos estáticos não aparecem em produção | STATIC_ROOT não configurado ou collectstatic não executado | Configure STATIC_ROOT corretamente e rode 'python manage.py collectstatic' | Servindo arquivos estáticos e mídia: staticfiles, media e co |
| Uploads de usuários não são acessíveis | MEDIA_ROOT ou MEDIA_URL incorretos ou servidor web não configurado para servir mídia | Ajuste MEDIA_ROOT, MEDIA_URL e a configuração do servidor web | Servindo arquivos estáticos e mídia: staticfiles, media e co |
| Arquivos estáticos antigos continuam aparecendo após atualização | Cache do navegador ou CDN, ou collectstatic não rodado novamente | Limpe o cache e rode 'python manage.py collectstatic' após cada alteração | Servindo arquivos estáticos e mídia: staticfiles, media e co |
| Erro: campo obrigatório não informado | Variável de ambiente ausente ou nome incorreto | Verifique nomes e presença das variáveis no ambiente e no .env | Settings: centralizando configurações sem hardcode |
| Segredos aparecem em logs | Configuração de logging excessivamente detalhada | Ajuste o nível de log e evite logar configs sensíveis | Settings: centralizando configurações sem hardcode |
| Permissão negada ao ler .env | Permissões restritivas demais | Ajuste permissões para leitura apenas pelo usuário correto | Settings: centralizando configurações sem hardcode |
| Erro: SECRET_KEY não definido | Variável ausente no .env ou erro de leitura pelo decouple | Adicione SECRET_KEY ao .env e confira permissões do arquivo | Settings.py sem medo: separando configurações por ambiente |
| Site não acessível em produção | ALLOWED_HOSTS não inclui o domínio correto | Inclua o domínio ou IP público em ALLOWED_HOSTS no .env | Settings.py sem medo: separando configurações por ambiente |
| DEBUG permanece True em produção | Variável DEBUG não foi sobrescrita corretamente | Verifique o valor de DEBUG no .env e se o arquivo correto está sendo carregado | Settings.py sem medo: separando configurações por ambiente |
| Testes falham apenas no CI | Dependências externas ou variáveis de ambiente ausentes | Use mocks e configure variáveis padrão nos testes | Testes automatizados: falha antes do deploy, não depois |
| Cobertura reporta 0% | Diretório ou módulo errado no parâmetro --cov | Ajuste o caminho do --cov para o pacote correto | Testes automatizados: falha antes do deploy, não depois |
| Testes de integração alteram dados reais | Banco de dados de produção sendo usado | Configure banco de teste isolado ou SQLite em memória | Testes automatizados: falha antes do deploy, não depois |
| Testes não rodam, erro de importação | Arquivo tests.py fora do app ou erro de sintaxe | Confirme nome e local do arquivo, corrija imports. | Testes automatizados: unitários, de integração e cobertura n |
| Banco de dados de teste não é criado | Configuração DATABASES incorreta ou falta de permissão | Revise settings.py e permissões do usuário no PostgreSQL. | Testes automatizados: unitários, de integração e cobertura n |
| Cobertura mostra 0% | Testes não foram executados pelo coverage | Use 'coverage run manage.py test' e não apenas 'python manage.py test'. | Testes automatizados: unitários, de integração e cobertura n |
| Página retorna erro 404 | Rota não definida ou include ausente no urls.py do projeto | Revise os arquivos urls.py e confirme que o include está correto | URLs, roteamento e middlewares: controlando o trajeto da req |
| Middleware não executa | Classe não adicionada corretamente ao MIDDLEWARE | Verifique o caminho e a ordem no settings.py | URLs, roteamento e middlewares: controlando o trajeto da req |
| Erro de importação em middleware | Arquivo ou classe não encontrados | Confirme o nome do arquivo e o caminho no settings.py | URLs, roteamento e middlewares: controlando o trajeto da req |
| Endpoint antigo ainda é chamado após depreciação | Clientes não migraram ou não foram avisados | Reforce comunicação e mantenha endpoint disponível por tempo planejado | Versionamento de API: evolua sem quebrar clientes |
| Documentação não separa versões claramente | Faltou usar tags ou routers distintos | Inclua routers separados e defina tags por versão | Versionamento de API: evolua sem quebrar clientes |
| Clientes recebem erro 404 após atualização | Endpoint removido sem depreciação adequada | Implemente ciclo de depreciação antes de remover endpoints | Versionamento de API: evolua sem quebrar clientes |
| Página retorna erro 404 | URL não configurada corretamente em urls.py | Revise o mapeamento de URLs e o nome da view | Views, templates e formulários: exibindo e processando dados |
| TemplateDoesNotExist | Arquivo de template não está no diretório correto ou nome errado | Verifique o caminho e o nome do template | Views, templates e formulários: exibindo e processando dados |
| Erros de validação não aparecem | Template não está exibindo form.errors | Inclua {{ form.errors }} no template | Views, templates e formulários: exibindo e processando dados |
| Recebe HTTP 422 ao testar o webhook | Payload enviado não corresponde ao modelo Pydantic | Ajuste o JSON para bater com os campos esperados | Webhooks e callbacks: recebendo eventos de fora |
| Recebe HTTP 401 mesmo com assinatura correta | Segredo compartilhado incorreto ou algoritmo diferente | Confirme segredo e algoritmo usados pelo sistema externo | Webhooks e callbacks: recebendo eventos de fora |
| Webhook demora para responder e o sistema externo faz reentregas | Processamento pesado no handler | Implemente fila assíncrona e retorne resposta imediatamente | Webhooks e callbacks: recebendo eventos de fora |
| Build não dispara após push | Webhook mal configurado ou Jenkins inacessível | Verifique a URL do webhook, conectividade e logs do Jenkins. | Webhooks e integrações com CI/CD: do commit ao deploy |
| Falha ao acessar secrets no GitHub Actions | Secrets não definidos ou nome incorreto | Confirme os nomes e valores em Settings > Secrets. | Webhooks e integrações com CI/CD: do commit ao deploy |
| Deploy automático não executa | Permissões insuficientes ou script de deploy com erro | Revise permissões do token e o script de deploy. | Webhooks e integrações com CI/CD: do commit ao deploy |
| Workers morrem inesperadamente | Consumo excessivo de memória ou falha no código. | Reduza o número de workers ou otimize o código. | Workers, threads e processos: o que realmente escala no Fast |
| Latência alta mesmo com muitos workers | Gargalo de I/O externo (banco de dados, APIs). | Otimize chamadas externas ou implemente cache. | Workers, threads e processos: o que realmente escala no Fast |
| CPU em 100% e requisições lentas | Carga CPU-bound acima da capacidade. | Reduza workers ou distribua carga entre mais servidores. | Workers, threads e processos: o que realmente escala no Fast |
