Problemas comuns ao construir com IA:10 e como resolver
Os 10 problemas comuns ao construir com IA, decifrados: o que você vê, o que acontece por baixo, a solução exata e o prompt certo que te destrava de vez.
Quando você trava, é quase sempre um dos problemas comuns ao construir com IA, e quase nunca um problema novo. Os mesmos dez cenários respondem por praticamente todo momento de "não faço ideia do que fazer agora" que um fundador não técnico enfrenta — e cada um deles tem uma causa conhecida e uma solução conhecida. Destravar não é heroísmo. É reconhecer padrões.
Este é o top dez escolhido a dedo de uma lista de vinte cenários de travamento que mantenho para os alunos do curso AI Product Builder — os que aparecem sem parar. Encontre o seu sintoma na tabela, entenda o que está realmente acontecendo, aplique a solução. Se você ainda não aprendeu a ler mensagens de erro no console do navegador, faça isso primeiro — isso transforma cada cenário abaixo de um mistério em um diagnóstico.
Por que você trava (e por que nunca é aleatório)
Todo cenário de travamento tem uma de três raízes. Ou o seu ambiente saiu do eixo (o banco de dados está dessincronizado com o código, falta uma configuração, um cache está velho), ou o seu código tem um defeito específico (um erro de digitação, uma checagem faltando, um import errado), ou os seus dados não são o que você pensa (filtrados, na conta errada, marcados como inativos). Código gerado por IA acrescenta uma reviravolta: o código muitas vezes funciona — são as premissas em volta dele que quebram.
É por isso que "tentar de novo" raramente funciona e por que o método vence o desespero. Associe o sintoma, confira a raiz, aplique a solução.
Os 10 problemas comuns ao construir com IA, decifrados
| O que você vê | O que está realmente acontecendo | A solução |
|---|---|---|
| 400 Bad Request, "column does not exist" | O código espera uma coluna no banco de dados que nunca foi criada — código e banco estão dessincronizados | Aplique as migrações de banco pendentes e depois confira a tabela no painel do Supabase para confirmar que a coluna existe |
| Os dados existem, mas não aparecem | Os dados estão sendo filtrados: flag de inativo, status de rascunho ou pertencem a outra conta | Confira a linha no painel do banco de dados — olhe flags como is_active e a conta a que ela pertence |
| 401 Unauthorized | A sua sessão expirou ou você foi deslogado | Saia e entre de novo; se persistir, limpe os dados do site no navegador e faça login do zero |
| 403 Forbidden ou 406 Not Acceptable | Você está logado, mas as regras de segurança do banco de dados (RLS) bloqueiam a operação | Confira o papel do seu usuário e as políticas de segurança daquela tabela no painel do Supabase |
| Duplicate key violation | Você está criando algo com um nome ou endereço que já existe — esses valores precisam ser únicos | Use outro valor ou atualize o registro existente em vez de criar um novo |
| Cannot read property of undefined | O código roda antes de os dados chegarem do banco de dados | Peça à IA para adicionar uma checagem de carregamento antes de os dados serem usados |
| Module not found | Um erro de digitação no caminho de um import, um arquivo que não existe ou um pacote que nunca foi instalado | Confira a grafia exata e as maiúsculas do caminho; rode o comando de instalação; reinicie o servidor de desenvolvimento |
| Build failed no deploy | Erros de tipo ignorados localmente ou configurações (variáveis de ambiente) faltando na plataforma de hospedagem | Rode o build na sua máquina primeiro para ver o erro real; copie todas as variáveis de ambiente para o painel da hospedagem |
| Deploy feito, mas o site mostra a versão antiga | O seu navegador ou a CDN está servindo uma cópia em cache do site antigo | Recarregamento forçado (Cmd + Shift + R); teste numa janela anônima; faça um novo deploy com o cache limpo |
| Mudei o código e nada acontece | O servidor de desenvolvimento não está rodando, o arquivo não foi salvo ou você editou o arquivo errado | Confira se o terminal está rodando o servidor, salve o arquivo, force o recarregamento — e confirme que você editou o arquivo que o erro de fato aponta |
Três problemas que na verdade são um só
Olhe de novo as linhas dois, três e quatro. "Dados não aparecem", "401" e "403" parecem três desastres diferentes, mas são uma só família: identidade e permissões. O banco de dados sempre faz as mesmas três perguntas — quem é você, a que conta você pertence e você tem permissão para fazer isso? Quando qualquer resposta está errada, você recebe um desses três sintomas.
Então depure nessa ordem. Primeiro: eu estou mesmo logado? Segundo: esses dados estão na minha conta, ou eu os criei com outro e-mail? Terceiro: a política de segurança dessa tabela permite que o meu papel faça isso? Em nove de cada dez casos, você nem chega à terceira pergunta.
Funciona na sua máquina, quebra em produção
O cenário mais desanimador merece uma seção própria: tudo funciona localmente, você faz o deploy e o site no ar está quebrado. Nada "deu errado" — local e produção são simplesmente ambientes diferentes. Configurações diferentes, banco de dados diferente, modo de build diferente. O checklist:
- Variáveis de ambiente primeiro. Toda configuração que o seu código lê precisa existir no painel da plataforma de hospedagem, não só na sua máquina. Essa é a causa mais vezes do que todas as outras juntas.
- Confira para qual banco de dados você está apontando. O seu app no ar precisa usar o endereço do banco de produção, não o de desenvolvimento.
- Leia os logs de deploy. A sua plataforma de hospedagem registra erros que nunca aparecem na sua máquina.
- Faça o build localmente como em produção. Rode o comando de build de produção na sua máquina — se falhar ali, você encontrou o bug sem outro ciclo de deploy.
O prompt que te destrava
Quando a tabela não resolve, entregue o problema à IA do jeito certo. Pedidos vagos produzem palpites vagos — e uma IA chutando pode piorar as coisas, como mostrei em como a IA sabota o seu código. O prompt de destravamento tem quatro partes:
Estou travado em [o que você estava tentando fazer]. O que eu esperava: [resultado esperado]. O que acontece de fato: [sintoma exato]. Mensagem de erro completa: [cole aqui, com arquivo e linha]. O que eu já tentei: [a sua lista]. Diagnostique a causa mais provável antes de propor uma solução.
Essa última frase importa. Forçar um diagnóstico primeiro impede a IA de disparar correções aleatórias no seu código — o equivalente, na depuração, a um médico receitar antes de examinar. E um hábito evita que metade deste artigo aconteça com você: faça commit do código que funciona antes de cada experimento, para que "estava tudo funcionando e agora quebrou" sempre tenha uma saída de um único comando.
O livroA Revolução do EUpreendedorLuis Gonçalves sobre como construir um negócio de EUpreendedor com IA sem largar o emprego.Quero o livro →Perguntas frequentes
O que devo fazer primeiro sempre que travar?
Abra o console do navegador e leia o erro real — veja aqui como ler qualquer erro em 30 segundos. Depois confira o terminal onde o seu servidor de desenvolvimento roda. Entre esses dois lugares, a causa real quase sempre está escrita para você; a habilidade é olhar antes de chutar.
Estava tudo funcionando ontem e eu não mudei nada. O que aconteceu?
Algo mudou — você só não percebeu. Os suspeitos de sempre: você puxou código novo sem atualizar as dependências ou o banco de dados, um merge deu errado ou um arquivo foi revertido sem querer. Pergunte ao seu controle de versão o que mudou desde o último estado que funcionava e restaure a partir dali. É por isso que fazer commit de código funcionando com frequência é o seguro mais barato do software.
Quando devo parar de depurar e pedir ajuda à IA?
Depois de uma passada metódica: console lido, sintoma comparado com os cenários comuns, uma solução tentada. Se isso não resolver, cole o contexto completo — erro, expectativa, o que você tentou — usando o prompt de destravamento acima. Vinte minutos de chute teimoso sozinho valem menos do que dois minutos de uma pergunta bem preparada.
Esses problemas são sinal de que eu não deveria construir sem um desenvolvedor?
Não — todo desenvolvedor do planeta enfrenta exatamente esses cenários; eles só os viram vezes suficientes para reconhecer os padrões. Esse reconhecimento se aprende em semanas, não em anos. As dez linhas acima são a maior parte do que "anos de experiência" significa na depuração do dia a dia.
Quão preso você está, de verdade?
Faça o Índice de Sufocamento Corporativo, a avaliação gratuita para saber se você está pronto para ser um EUpreendedor.