Pular para o conteúdo

Noções de segurança

O Supabase caiu ou o problema é o seu app? Como saber

O Supabase caiu ou o problema é o seu app? Um projeto pausado, um banco cheio e um erro seu parecem iguais. Quatro verificações separam os casos.

Vlad Tkachenko16 min de leitura
Uma rua à noite com prédios iluminados e, na frente deles, um prédio com todas as janelas apagadas.

Em resumo

  • O Supabase caiu? Pode ser. Um projeto pausado, um projeto que chegou a um limite e um erro no seu próprio app produzem a mesma tela em branco.
  • A página de status do Supabase responde só à primeira pergunta. A sua lista de projetos e as páginas do seu projeto respondem às duas seguintes, e os códigos de status no seu navegador resolvem a última.
  • Uma queda termina sem você. Um projeto pausado fica parado até você retomá-lo, e depois de um ano essa opção desaparece.

O seu app abre e depois não carrega nada. A lista que deveria mostrar os pedidos dos seus clientes está vazia, o botão de login fica girando, ou a página continua branca. Alguém já mandou mensagem sobre isso. Então você pesquisa «supabase caiu», porque o seu app foi feito com o Lovable ou o Bolt em cima de um projeto do Supabase, e o Supabase é a única peça da máquina que você conhece pelo nome.

É aqui que a resposta de sempre erra. Ela diz: olhe a página de status do Supabase. É o primeiro passo certo, e ele responde a uma pergunta de quatro. O seu projeto para de responder ao seu app quando o Supabase tem uma queda, mas também quando o Supabase o pausou, quando ele chegou a um limite e quando o seu próprio app está quebrado enquanto o Supabase responde certinho a cada requisição. Os seus clientes veem a mesma tela em branco nos quatro casos, e a página de status só sabe do primeiro.

Pense nisso como uma falta de luz em casa. A primeira coisa que qualquer pessoa faz é olhar pela janela para ver se os vizinhos também estão no escuro. Essa é a página de status, e ela fala da rua. Não diz nada sobre a carta embaixo da porta, o quadro de luz no corredor ou a lâmpada.

Cada página do Supabase, cada incidente e cada número deste artigo foram lidos em 30 de setembro de 2026.

O Supabase caiu, ou o problema é o seu app?

Pela tela você não consegue saber, e é por isso que a busca deixa as pessoas travadas. Quatro falhas diferentes produzem o mesmo resultado:

  1. O Supabase caiu. Alguma coisa falhou do lado do Supabase, normalmente numa região ou num serviço. A rua inteira ficou sem luz.
  2. O seu projeto está pausado. O Supabase para os projetos gratuitos que ficaram mais ou menos uma semana sem atividade. Cortaram a sua luz, e ninguém mais na rua foi afetado.
  3. O seu projeto chegou a um limite. Ele encheu o espaço e passou para somente leitura, ou ficou sem capacidade e foi ficando lento até as requisições pararem de ter resposta, ou a sua organização passou de uma cota e foi restringida. Um disjuntor desarmou.
  4. O seu app está quebrado. O Supabase está respondendo, e alguma coisa do seu lado, uma chave, as regras de acesso de uma tabela ou um trecho de código, transforma essa resposta numa tela em branco. A energia está chegando. É a lâmpada.

Aqui e daqui em diante, o seu projeto é o banco de dados do Supabase onde o seu app guarda os dados, junto com o login, o armazenamento de arquivos e a API ao redor dele.

Quatro falhas diferentes, uma tela só. Os seus clientes não conseguem distinguir uma da outra, e você também não, até verificar.

As verificações abaixo passam por elas em ordem, da mais barata para a mais cara, e cada uma confirma ou descarta uma falha.

Quatro verificações, da mais barata para a mais cara

Passo 1: o Supabase caiu para todo mundo?

Abra status.supabase.com. Se um incidente aberto citar a sua região ou um serviço que o seu app usa, você tem a sua resposta, e a seção sobre quedas, mais abaixo, diz o que fazer com ela.

A página lista os serviços do Supabase um por um: o banco de dados e a API pela qual o seu app o lê, Auth para o login, Storage para os arquivos enviados, Realtime, Edge Functions, o painel e mais alguns. Embaixo vem uma lista de regiões. Uma região é a parte do mundo onde o seu projeto roda, e a sua aparece na página Infrastructure das configurações do projeto, com um código como eu-west-1. Um incidente em us-east-1 não tem nada a ver com um projeto na Irlanda, então descubra o seu código antes de ler qualquer outra coisa.

O que a página não tem é uma linha para o seu projeto. Ela informa os problemas que atingem projetos suficientes para serem anunciados, e os incidentes reais costumam ser bem localizados. Os cinquenta mais recentes, que voltam até 15 de julho de 2026, incluem um que derrubou só os projetos num conjunto específico de máquinas em eu-west-1, outro que deixou sem resposta, depois de algumas horas rodando, os projetos do menor tamanho, o do plano gratuito, e outro sobre erros 401 em parte dos projetos novos que ficou aberto por 46 dias.

Então uma página verde diz que o Supabase não anunciou nenhum problema. O seu projeto pode estar fora do ar por baixo dela, e é disso que tratam as próximas três verificações.

A página de status fala do Supabase como um todo. Ela não tem nenhuma linha para o seu projeto.

O painel tem uma linha e incidentes próprios. Em 1º de setembro de 2026 ninguém conseguia entrar nele, e um app pode continuar funcionando durante uma coisa dessas.

Já que você está na página, assine as atualizações. Basta um endereço de e-mail, e o Supabase também publica o histórico de incidentes como feed RSS.

Passo 2: o seu projeto está pausado?

Abra o painel do Supabase e olhe a sua lista de projetos. Um projeto com Paused ao lado do nome foi parado pelo Supabase, quase sempre um projeto gratuito que passou mais ou menos uma semana sem atividade, e ele continua parado até você retomá-lo. Todo o resto sobre a pausa, incluindo o prazo de um ano e o que fazer quando a opção de retomar sumiu, está em o que fazer quando o seu projeto do Supabase está pausado.

Passo 3: o seu projeto chegou a um limite?

Veja o que ainda funciona. Cada limite quebra uma coisa diferente, e o padrão diz qual disjuntor desarmou.

As páginas carregam e nada é salvo. Isso é o modo somente leitura. Um projeto gratuito entra em somente leitura quando o banco passa de 500 MB, e um pago quando o disco enche mais rápido do que o Supabase tem permissão de aumentá-lo. A leitura continua funcionando, então o app parece normal até alguém tentar se cadastrar, fazer um pedido ou salvar um formulário, e toda gravação volta com cannot execute INSERT in a read-only transaction. A saída é mais espaço, mudando de plano ou apagando dados. O que cada limite do plano gratuito desliga cobre os dois caminhos, e o guia de tamanho do banco do Supabase traz o SQL.

Tudo fica lento e depois para de responder. O projeto ficou sem folga. O tamanho de computação dele define quanta memória ele tem e quanto pode exigir do disco, e os tamanhos menores ganham uma cota diária para passar desse nível, que o Supabase chama de Disk IO Budget. Quando ela acaba, a própria lista do Supabase do que pode acontecer inclui tempos de resposta que sobem bastante e uma instância que para de responder. A cota se recarrega no dia seguinte, e a página Database Health, em Observability, mostra onde você está.

Talvez chegue um e-mail dizendo que o projeto «is running out of Disk IO Budget», ou você veja no painel um aviso de que ele está unhealthy, com o botão Restart project embaixo. Trate o e-mail como uma pista. Depois de um incidente em 10 de setembro de 2026, o Supabase avisou os donos afetados de que o e-mail de Disk IO que eles tinham recebido não valia mais: o próprio incidente o tinha provocado.

Toda requisição falha com um 402. A sua organização foi restringida pela Fair Use Policy do Supabase, por continuar acima de uma cota depois do período de carência ou por uma fatura em aberto, e a restrição costuma valer para todos os projetos da organização. O 402 diz o motivo com um código como exceed_db_size_quota ou overdue_payment, e o Supabase diz que, enquanto ela durar, você ainda consegue chegar aos seus dados pelo painel. Mudar de plano tira na hora uma restrição por uso; se não, ela cai quando começa o próximo ciclo de cobrança.

Esse é o quadro de luz. Os três casos acontecem dentro do seu próprio projeto, então a página de status não mostra nenhum deles.

Passo 4: pergunte direto ao seu projeto

Mande uma requisição e leia a resposta. Se o Supabase responder normalmente, o problema está do seu lado da conexão.

A versão mais rápida não precisa de ferramenta nenhuma. O endereço do seu projeto é parecido com https://abcdefghijklmnopqrst.supabase.co, e a sequência de letras antes de .supabase.co aparece na barra de endereços do navegador sempre que o projeto está aberto no painel. Acrescente /rest/v1/ no final, cole numa aba nova e veja o que volta.

  • Uma linha de texto entre chaves dizendo que nenhuma chave de API foi encontrada. O Supabase está respondendo no endereço do seu projeto. Ele recusou você porque a aba não enviou chave nenhuma, o que é o correto. O projeto existe e não está pausado.
  • «Não é possível acessar esse site» ou «servidor não encontrado». O endereço não resolve. A página de ajuda do Supabase sobre esse erro lista os motivos comuns: um projeto pausado, um apagado ou um endereço digitado errado.
  • Uma página de erro com um número na casa dos 500, ou nada depois de uma longa espera. O endereço existe e o projeto por trás dele está sofrendo. Volte ao passo 3 e olhe de novo a página de status.

A versão completa é a aba Network do navegador, que mostra as respostas que o seu app recebe com a própria chave. Abra o seu app, aperte F12, escolha Network, recarregue a página e digite na caixa de filtro as letras do endereço do seu projeto. Cada requisição ao seu projeto aparece com um código de status, e o código já é quase todo o diagnóstico. Os significados abaixo vêm da lista de códigos de status do Supabase e da API de banco de dados que roda lá:

StatusO que significaPara onde ir
200O Supabase respondeu e devolveu alguma coisaO seu app, logo abaixo
401 ou 403O Supabase respondeu e recusou a chave, a tabela ou a sessãoA próxima seção
402A sua organização está restritaPasso 3
405 ao salvar, enquanto as leituras recebem 200O banco está em somente leituraPasso 3
540O projeto está pausadoPasso 2
503, 544 ou nenhuma respostaO projeto está no ar e não dá contaPasso 3, depois um reinício
falhou, com «name not resolved»O endereço não existe neste momentoPasso 2, depois confira o endereço

A linha a procurar primeiro é a do 200. Se as requisições do seu app ao Supabase voltam com 200 e a tela continua em branco, o Supabase fez a parte dele, e a lâmpada é sua. Talvez as regras de uma tabela não deixem este visitante ver nenhuma linha, o que chega como um 200 com uma lista vazia. Talvez o app esteja apontando para um projeto diferente do que você está olhando. Ou o código que desenha a página quebrou com o que recebeu, e isso é uma pergunta para o seu builder, com a requisição e a resposta em mãos.

Por que o Supabase de repente me dá erros 401?

Porque o Supabase respondeu e recusou quem estava pedindo. Um 401 significa que a requisição chegou ao seu projeto, então a plataforma está no ar. O que foi recusado é uma de três coisas, e a mensagem diz qual: clique na requisição na aba Network e abra a Response dela.

  • A chave. A mensagem diz Invalid API key ou Legacy API keys are disabled. O seu app está enviando uma chave que o projeto não aceita mais. A chave anon antiga, uma sequência longa que começa com eyJ, para de funcionar quando alguém desativa as chaves legadas nas configurações do projeto, e o Supabase avisou que um projeto pausado restaurado desde 1º de novembro de 2025 volta sem ela. Nas palavras do próprio Supabase, projetos pausados que são restaurados correm o risco de quebrar porque não terão as chaves legadas. A solução é colocar a chave publicável atual do projeto, a que começa com sb_publishable_, nas configurações de ambiente do seu builder. Os dois formatos de chave estão comparados lado a lado.
  • A tabela. A mensagem diz permission denied for table. A chave está certa, e essa tabela não foi aberta para esse tipo de visitante. A partir de 30 de outubro de 2026, toda tabela nova do Supabase começa assim, e o jeito seguro de abri-la tem um artigo próprio.
  • A sessão. As páginas sem login funcionam, as pessoas logadas recebem erros 401 que vão e voltam, e a mensagem costuma mencionar um JWT, o token assinado que o seu app guarda para cada pessoa logada. De 14 de agosto a 29 de setembro de 2026, a página de status do Supabase manteve um incidente com o título «401 errors due to JWT rejections»: uma parte dos projetos novos rejeitava sessões que tinham acabado de ser renovadas. A solução do Supabase, lançada em 29 de setembro, é uma versão nova do projeto que você mesmo instala, com o botão Upgrade project na página General das configurações do projeto.

Esse upgrade deixa o projeto fora do ar enquanto roda, e o painel mostra uma estimativa de quanto tempo antes de você confirmar. O guia de upgrade do Supabase recomenda fazer antes uma cópia dos seus dados. No plano gratuito ninguém mais está fazendo essa cópia, e fazer uma pelo painel não precisa de terminal.

Como reiniciar um projeto do Supabase?

Pelo painel: abra o projeto, vá em Project Settings, depois em General, e clique em Restart project em Project availability. A seta ao lado do botão oferece Fast database reboot, que reinicia só o banco de dados e encurta o tempo fora do ar. Nos dois casos, o Supabase avisa de alguns minutos fora do ar.

Um reinício é a ferramenta certa para um projeto sobrecarregado ou marcado como unhealthy, e foi o que o Supabase pediu aos donos afetados depois do incidente de 10 de setembro. Se o projeto é pequeno demais para o trabalho que faz, o problema volta, e a solução duradoura é um tamanho de computação maior ou consultas mais leves. Um projeto pausado precisa de Resume project, que fica no mesmo lugar. Um banco cheio continua cheio depois de um reinício, e uma chave recusada continua recusada.

Não mexa no botão enquanto houver um incidente que cite ações em projetos. Em 4 de setembro de 2026, reinícios, restaurações e mudanças de tamanho de computação davam erro em todas as regiões, o Supabase pediu que ninguém tentasse, e por um tempo desativou tudo isso de vez.

O que você pode fazer durante uma queda do Supabase?

Muito pouco, e esperar é a decisão certa. Consertar a queda é trabalho do Supabase, e o seu projeto volta sem você encostar nele.

Isso faz da queda a única falha deste artigo que se resolve esperando, e é por isso que o passo 2 vem antes de qualquer coisa que você faça aqui. Falta de luz a gente espera passar. Um corte feito pela companhia continua até você ligar para ela, e um projeto pausado continua parado até você retomá-lo, com um ano no relógio a partir do dia em que parou.

Uma queda volta sozinha. Um projeto pausado volta quando você o retoma, e só dentro do ano.

O que vale a pena fazer enquanto espera:

  • Confirme que é com você. Veja se o incidente cita a sua região ou um serviço que o seu app usa.
  • Assine esse incidente, para receber a atualização que anuncia o fim dele.
  • Avise os seus usuários. Uma linha onde eles procuram você, dizendo que o app foi afetado por uma queda no fornecedor do banco de dados e que vai voltar.
  • Deixe o projeto quieto. Durante o incidente de 4 de setembro, o Supabase desaconselhou criar projetos, mudar configurações, reiniciar ou mudar o tamanho de computação até o incidente ser resolvido. Os projetos no ar continuaram rodando enquanto essas ações falhavam.

Também não há nada a reivindicar pelo tempo fora do ar, a não ser que você esteja no Enterprise. O compromisso de disponibilidade do Supabase, com créditos de serviço para um mês abaixo de 99,9%, foi escrito só para clientes Enterprise.

O que ter pronto antes da próxima

Quatro coisas, todas mais fáceis num dia em que nada quebrou:

  • A sua região, anotada ao lado do endereço do seu projeto, e uma assinatura da página de status.
  • O seu app na chave publicável. O Supabase está aposentando as chaves antigas anon e service_role até o fim de 2026, e um app que ainda envie uma delas vai começar a colecionar erros 401 quando elas sumirem.
  • Uma cópia do seu banco fora da sua conta do Supabase. Uma queda, uma pausa e uma restrição acontecem todas dentro do Supabase, e uma cópia guardada em outro lugar fica fora do alcance delas. No plano gratuito, o Supabase não guarda nenhuma cópia para você.
  • Alguma coisa que perceba quando o seu app para de responder e avise você antes que um cliente precise fazer isso.

Onde o Reeve entra

O Reeve Monitor vigia o endereço que os seus visitantes carregam. O Reeve Care também se conecta ao banco de dados do Supabase por trás dele e guarda uma cópia fora da sua conta do Supabase.

  • O Monitor verifica o endereço do seu app a cada 60 segundos de fora, e manda um e-mail quando ele para de responder e outro quando ele volta. Ele também repete de hora em hora as nossas nove verificações de segurança, em até três apps.
  • O Care se conecta ele mesmo ao seu banco do Supabase para fazer uma cópia, todo dia no Care e com mais frequência nos planos acima. Uma noite em que o banco não responde é uma cópia que não pôde ser feita, e você recebe um e-mail contando o que aconteceu.
  • A cópia fica fora da sua conta do Supabase, criptografada, e é lida de volta antes de contar, então uma pausa ou uma restrição deixam a sua última cópia boa onde você consegue alcançá-la.
  • Restaurar é um botão, e antes é feito um retrato do estado atual, então a restauração tem o seu próprio desfazer.

O que cada plano cobre está na página de preços, e a cópia, a verificação e a restauração estão desenhadas passo a passo na página de backups do Supabase.

O que fazer agora

O que fazer

  • Descubra a região do seu projeto na página Infrastructure das configurações dele e assine a página de status do Supabase.
  • Quando o seu app ficar em branco, verifique nesta ordem: a página de status, a palavra Paused na sua lista de projetos, páginas que carregam enquanto salvar falha, e os códigos de status na aba Network do navegador.
  • Se o projeto está pausado, retome-o hoje. Esperar só gasta o ano que você tem.
  • Se as requisições voltam com 401, leia a mensagem antes de mudar qualquer coisa. Uma chave, uma tabela e uma sessão têm cada uma a sua solução.
  • Durante uma queda de verdade, deixe o projeto quieto: nada de reinícios, restaurações ou upgrades até o incidente ser resolvido.
  • Passe o seu app para a chave sb_publishable_ e guarde uma cópia do seu banco fora do Supabase, enquanto nada está quebrado.

Antes de fechar esta aba, abra as configurações Infrastructure do seu projeto, anote o código da região ao lado do endereço e assine a página de status. Se a tela em branco de hoje acabou sendo uma pausa, veja aqui o que fazer em seguida.

Perguntas frequentes

O Supabase está fora do ar agora?

Confira status.supabase.com, que é onde o Supabase publica os próprios incidentes, serviço por serviço e região por região. Descubra primeiro a região do seu projeto: ela aparece na página Infrastructure das configurações do projeto, com um código como eu-west-1. Se nada na página de status citar essa região ou um serviço que o seu app usa, o Supabase não anunciou nenhum problema, e o próximo lugar para olhar é o seu próprio projeto.

Meu app quebrou, mas a página de status do Supabase está verde. E agora?

Olhe o seu próprio projeto. Confira na lista de projetos do painel do Supabase se aparece a palavra Paused, e depois se o projeto está marcado como unhealthy, em somente leitura ou restrito. Se tudo isso parecer normal, abra o seu app, aperte F12, escolha a aba Network e recarregue. Uma requisição ao seu projeto que volta com 200 significa que o Supabase respondeu, e o problema está do seu lado.

Um projeto do Supabase pausado é a mesma coisa que uma queda?

Não, e os dois pedem reações opostas. Uma queda é problema do Supabase e acaba quando eles consertam, então esperar é o certo. Uma pausa é o Supabase parando o seu projeto, quase sempre um gratuito que passou uma semana sem atividade, e nada muda até você retomá-lo pelo painel. Você tem um ano para isso. Depois, o painel oferece um download no lugar, e voltar ao ar exige um projeto novo com um endereço novo.

Por que o Supabase de repente me dá erros 401?

Um 401 significa que o Supabase respondeu e recusou quem estava pedindo. Talvez o seu app esteja enviando uma chave que o projeto não aceita mais, o que acontece quando a chave anon antiga é desativada ou quando um projeto pausado é restaurado sem ela. Uma tabela pode recusar com permission denied. Ou as sessões podem ser rejeitadas: de 14 de agosto a 29 de setembro de 2026 isso aconteceu com uma parte dos projetos novos, e a solução é Upgrade project na página General.

Como reinicio o meu projeto do Supabase?

Abra o projeto no painel do Supabase e vá em Project Settings, depois em General. Em Project availability, Restart project reinicia tudo, e a seta ao lado oferece Fast database reboot, que reinicia só o banco de dados, com menos tempo fora do ar. Conte com alguns minutos fora do ar nos dois casos. Um reinício ajuda um projeto sobrecarregado ou marcado como unhealthy. Um projeto pausado precisa de Resume, na mesma página, e um banco cheio precisa de espaço.

Dá para fazer alguma coisa durante uma queda do Supabase?

Muito pouco, e esperar é a decisão certa. Confira se o incidente cita a sua região, assine as atualizações dele e conte aos seus usuários o que eles estão vendo. Deixe reinícios, restaurações, upgrades e mudanças de tamanho de computação para depois que ele for resolvido: num incidente em toda a plataforma em 4 de setembro de 2026, o Supabase desaconselhou exatamente isso. A garantia de disponibilidade com créditos de serviço vale só para clientes Enterprise.

Escrito por

Vlad Tkachenko

Fundador da Reeve

Passo meus dias olhando apps criados com Lovable, Bolt, v0, Cursor e Replit, e a curta lista de erros que aparecem neles sem parar.

Mais sobre o autor

Leia depois

Todos os artigos

Não sabe como está o seu próprio app?

Faça um scan gratuito e receba uma nota clara de A a F em cerca de 20 segundos. Sem conta e sem cartão.

Verificar meu app grátis

Verificação externa automatizada, não uma auditoria completa. A ausência de achados não é garantia de segurança.