Skip to main content

Erros

Todos os códigos de erro da API, o que os causa, como corrigi-los e se é seguro tentar novamente.
7 min read

Todas as respostas de erro do Firecrawl usam o mesmo formato JSON. Consulte o valor de error (ou o status HTTP) na tabela abaixo para identificar a causa, a correção e se a solicitação pode ser repetida com segurança.

Note
Este catálogo cobre os erros que a maioria dos agentes e clientes encontrará. Ele não é exaustivo — se você receber um erro não listado aqui, abra uma issue para que possamos documentá-lo.

Estrutura da resposta de erro#

Todas as respostas com status diferente de 2xx retornam JSON com success: false no nível superior e uma string error. Alguns endpoints incluem campos adicionais (details, code) quando há mais contexto disponível.

CampoTipoDescrição
successbooleanSempre false em caso de erro.
errorstringMensagem de erro legível por humanos. Use isto para consultar a linha abaixo.
detailsanyOpcional. Erros de validação estruturados por campo, quando aplicável.

Erros#

HTTPerror (mensagem típica)CausaSoluçãoRepetível
400Bad Request / mensagem de validaçãoO corpo da solicitação falhou na validação do schema (campos ausentes ou inválidos).Corrija o payload da solicitação usando a referência do endpoint. Verifique details para identificar os campos.Não
400Invalid URLO campo url está ausente, malformado ou usa um esquema sem suporte.Informe uma URL absoluta http(s)://.Não
401Unauthorized: Invalid tokenA API key está ausente, malformada ou foi revogada.Envie Authorization: Bearer fc-... com uma chave válida do painel.Não
402Payment Required: Insufficient creditsOs créditos do plano acabaram ou a cobrança não está configurada.Ative o pagamento por uso ou faça upgrade do seu plano.Não
403ForbiddenA chave não tem permissão para este endpoint ou recurso.Use uma chave com o escopo necessário ou faça upgrade do plano que libera esse recurso.Não
403SCRAPE_PROMPT_INJECTION_DETECTEDO modo JSON com checkPromptInjection: true detectou uma tentativa de injeção de prompt no conteúdo da página extraído, portanto a extração foi interrompida.Inspecione manualmente o conteúdo da página. Se for um falso positivo, tente novamente sem checkPromptInjection. Consulte Detecção de injeção de prompt.Não
404Not FoundO ID do job, recurso ou caminho do endpoint não existe.Verifique o ID do recurso e a URL do endpoint.Não
408Request TimeoutA página levou mais tempo para carregar do que o timeout da solicitação.Aumente o timeout, simplifique as ações ou use fastMode.Sim, com backoff
409ConflictO recurso está em um estado que impede a operação (por exemplo, já foi excluído).Busque o estado novamente e faça a reconciliação antes de tentar de novo.Não
413Payload Too LargeO corpo da solicitação excedeu o tamanho máximo permitido.Reduza o payload (por exemplo, um schema menor ou menos URLs por batch).Não
422Unprocessable Entity / erro no schema de extraçãoO schema é um schema JSON inválido, ou o modelo não conseguiu produzir um resultado compatível.Valide o schema; flexibilize os campos obrigatórios; tente um model diferente.Às vezes
429Rate limit exceededHá solicitações demais para o limite por minuto do seu plano.Aplique backoff e tente novamente após os segundos indicados em Retry-After. Consulte Limites de taxa.Sim, com backoff
429Concurrency limit reachedO limite de concorrência do navegador do seu plano foi atingido.Aguarde os jobs em andamento terminarem, reduza a concorrência ou faça upgrade do seu plano.Sim, com backoff
500Internal Server ErrorFalha não tratada no lado do servidor.Tente novamente com backoff exponencial. Se persistir, contate o suporte com o ID da solicitação.Sim, com backoff
502Bad GatewayO proxy upstream ou worker retornou uma resposta inválida.Tente novamente com backoff.Sim, com backoff
503Service UnavailableO serviço está temporariamente indisponível para processar a solicitação.Tente novamente com backoff.Sim, com backoff
504Gateway TimeoutA solicitação excedeu o tempo limite do gateway (normalmente em rastreamentos longos).Use os endpoints assíncronos de rastreamento/batch e consulte o status.Sim, com backoff

Para respostas 429, o Firecrawl inclui um cabeçalho Retry-After (em segundos) quando disponível — aguarde pelo menos esse tempo antes de tentar novamente.

Agente#

Erros específicos de /agent e de seus endpoints de status, rastro, snapshot e cancelamento. Os endpoints de rastro e snapshot retransmitem o corpo de erro upstream sem alterações; por isso, esses dois podem responder com um corpo que omite o campo success descrito acima. Use o status HTTP e a string error para a correspondência.

HTTPerror (mensagem típica)CausaSoluçãoRepetível
400Invalid job ID format. Job ID must be a valid UUID.O segmento de caminho jobId não é um UUID.Use o id retornado por POST /v2/agent.Não
400Invalid snapshot IDO segmento de caminho snapshotId está malformado.Use um snapshotId de um evento artifact.updated do rastro.Não
400Trace is only available for Spark 2 extractsO job é anterior ao Spark 2, que registra rastros.Não há nada a fazer nesse job. Toda nova execução roda no spark-2 e tem um rastro.Não
400Snapshots are only available for Spark 2 extractsO job é anterior ao Spark 2, que registra snapshots.Não há nada a fazer nesse job. Toda nova execução roda no spark-2 e tem snapshots.Não
400Your team has zero data retention enabled. This is not supported on extract.Não é possível executar o agente para uma equipe com retenção zero de dados obrigatória.Entre em contato com support@firecrawl.com para habilitar o recurso para sua equipe.Não
404Agent job not foundO ID do job não existe ou pertence a outra equipe.Verifique o ID do job e use uma chave da equipe que iniciou a execução.Não
404Snapshot not foundNenhum snapshot com esse ID pertence a este job.Busque o rastro novamente e use um snapshotId atual de um evento artifact.updated do rastro.Não
409Agent already finishedO cancelamento foi solicitado para uma execução que já havia atingido um estado terminal.Consulte GET /v2/agent/{jobId} para obter o resultado.Não
409Agent is already cancelledO cancelamento foi solicitado para uma execução que já estava sendo cancelada.Consulte GET /v2/agent/{jobId}. Uma execução cancelada informa failed com uma mensagem de cancelamento.Não
500Failed to passthrough agent request.O serviço do agente rejeitou o job no envio.Tente novamente com backoff. Se o problema persistir, entre em contato com o suporte e informe o ID da solicitação.Sim, com backoff

Uma execução que atinge o limite de maxCredits não retorna um erro HTTP. Ela termina como um job com falha. Consulte o endpoint de status para receber status: "failed" com uma mensagem de erro de limite de crédito, sem data e com creditsUsed: 0, pois execuções com falha não são cobradas. No rastro, o mesmo resultado aparece como um evento run.finished com outcome: "credit_limit_reached".

Códigos de erro de rastro#

Eventos de rastro terminal e error.occurred contêm um objeto error estruturado cujo code é um dentre cinco valores. Cada um também contém um booleano retryable, que deve ser tratado da mesma forma que a coluna Repetível acima.

codeSignificado e solução
cancelledVocê cancelou a execução. Inicie uma nova quando quiser refazer o trabalho.
credit_limit_reachedA execução atingiu o limite de maxCredits. Aumente maxCredits ou restrinja o prompt para que a execução exija menos trabalho.
parent_finishedUm subagente foi interrompido porque o agente que o iniciou terminou primeiro. Consulte o evento terminal do agente pai para identificar a causa real.
refusedO agente recusou a tarefa. Reformule o prompt ou restrinja-o a URLs das quais você tem autorização para coletar dados.
internalOcorreu uma falha inesperada durante a execução. Tente executar novamente; se persistir, entre em contato com o suporte usando o ID do job.

Orientações sobre novas tentativas#

Considere a coluna Repetível como a referência principal; não deduza isso apenas pelo status HTTP. O padrão abaixo usa backoff exponencial com jitter e respeita Retry-After em respostas 429.

Respostas 429#

Respostas 429 são o erro repetível mais comum. Os limites de taxa por plano e os limites de concorrência estão documentados em Limites de taxa. Sempre respeite o cabeçalho Retry-After, quando presente, em vez de tentar novamente imediatamente.