
Adélia Cruz
MCP Integration Engineer
Publicado Oct 30, 2026
Atualizado Oct 30, 2026 · minutos de leitura

ERROR_INVALID_TASK_DATA significa que os dados de tarefa enviados estão incorretos; o errorDescription retornado é o ponto de partida para o diagnóstico.Quando uma requisição de CAPTCHA falha antes de retornar um resultado utilizável, é tentador mudar várias configurações de uma vez. Com ERROR_INVALID_TASK_DATA, um passo inicial melhor é preservar a resposta e inspecionar a requisição que de fato chegou à API.
A CapSolver documenta esse erro como dados de tarefa incorretos e orienta o usuário à descrição do erro. O código por si só não identifica um único campo ausente universal. O tipo de tarefa selecionado, seus campos obrigatórios e a mensagem específica do servidor determinam o que investigar.
Este guia cobre o diagnóstico da requisição. Ele não afirma que toda requisição malformada produz exatamente esse código ou que a API valida os campos em uma ordem fixa.
Significa que os dados de tarefa enviados não são aceitáveis para a requisição em processamento.
A referência oficial de erros lista ERROR_INVALID_TASK_DATA separadamente de tipos de tarefa não suportados, dados de imagem inválidos, erros de autenticação e falhas na resolução. Preserve o errorCode e o errorDescription completos em vez de reduzir todas as falhas a “CAPTCHA falhou”.
A API direta usa errorId para indicar um erro. Se a resposta reportar um erro, não prossiga como se existissem um taskId válido ou uma solução. Faça primeiro o desvio para o diagnóstico.
Um parâmetro de API tem um nome, um tipo de valor e uma localização na requisição. Um valor pode ser significativo na sua aplicação e ainda assim estar errado para a interface se for colocado sob a chave errada ou serializado com o tipo JSON incorreto.
Por exemplo, um wrapper de ferramenta pode aceitar website_url, enquanto a tarefa direta usa websiteURL. Nenhuma grafia é universalmente correta; cada uma pertence à sua própria interface. A investigação do erro deve começar identificando qual interface o seu código está chamando.
Capture o código de erro, a descrição, o tipo de tarefa e uma cópia redigida do payload final da mesma tentativa que falhou.
Inspecione o objeto depois que sua aplicação aplicou configuração, valores padrão e serialização. Uma variável aparentemente correta mais cedo no script não prova que o cliente HTTP enviou a mesma estrutura.
Para logs rotineiros, remova a chave de conta, valores completos de solução, cookies e dados sensíveis da página. Preserve nomes de parâmetros e informações seguras de tipo. Se o suporte precisar de uma referência de tarefa, mantenha-a junto com a tentativa correspondente em vez de combinar detalhes de várias repetições.
Uma nota de troubleshooting útil identifica o endpoint, o tipo de tarefa, os nomes de campos presentes, os tipos JSON e o texto exato do erro. Ela também indica se a requisição foi enviada diretamente, gerada por um SDK ou traduzida de uma chamada de ferramenta MCP. Esse detalhe de interface muitas vezes explica por que campos aparentemente válidos estão sendo rejeitados.
Não cole uma requisição não redigida em um issue público ou em um prompt de modelo apenas para facilitar o debug. Mantenha o registro de diagnóstico no canal interno apropriado.
Para uma requisição direta createTask, compare o objeto externo com a documentação do createTask.
O JSON a seguir é um formato ilustrativo de requisição com base na tarefa documentada de reCAPTCHA v2 proxyless. Ele contém credenciais e valores de página de exemplo; não é uma requisição enviada nem um desafio utilizável.
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://example.com/authorized-form",
"websiteKey": "PUBLIC_SITE_KEY_FROM_THAT_PAGE"
}
}
Aqui, clientKey está fora de task, enquanto as entradas específicas da tarefa estão dentro dele. O valor de task é um objeto JSON, não uma string contendo JSON escapado.
Esse formato foi analisado e comparado com a tabela de parâmetros do reCAPTCHA v2 atual. Nenhuma requisição de resolução foi feita com esses placeholders. Uma requisição real precisa da sua própria credencial, de uma página autorizada e de seus parâmetros reais de desafio.
Compare primeiro a estrutura. Se o seu construtor de requisições acidentalmente transformar a tarefa em uma string entre aspas, mudar a site key não irá reparar o invólucro. Se o corpo estiver em form-encoding enquanto o seu código cliente supõe JSON, inspecione o caminho de serialização antes de editar valores específicos do desafio.
Use a tabela de parâmetros para a variante real da tarefa, em vez de combinar campos de vários exemplos.
| O que inspecionar | Pergunta a fazer | Correção quando o desvio é confirmado |
|---|---|---|
| Tipo de tarefa | Esta interface aceita exatamente esse valor de type? | Use o tipo documentado para o desafio observado |
| Grafia do campo | A chave enviada corresponde ao contrato da API? | Corrija a chave no construtor de requisições |
| Valores obrigatórios | Um campo obrigatório está ausente, vazio ou nulo por engano? | Forneça o valor real a partir da página permitida ou da configuração |
| Tipo JSON | Um objeto está sendo enviado como string, ou um booleano como texto? | Corrija a serialização e os tipos de valor |
| Campos aninhados | O campo está dentro do objeto especificado na documentação? | Corrija sua localização sem adivinhar campos extras |
| Contexto do desafio | A URL e a chave pública descrevem o mesmo desafio atual? | Atualize as entradas a partir da página pretendida |
Isso é uma ordem de revisão, não uma afirmação sobre a ordem de validação do servidor. A descrição do erro pode apontar diretamente para um problema mais específico; siga essa evidência primeiro.
Evite adicionar todos os parâmetros opcionais “por via das dúvidas”. Palpites extras podem tornar a requisição mais difícil de entender. Comece pelos campos obrigatórios documentados e depois adicione os valores exigidos para a variante real. Um campo necessário em uma família de CAPTCHA pode não ter significado em outra.
Se um campo for condicional, leia a condição. Não invente um placeholder vazio apenas para fazer o objeto parecer completo. Por exemplo, a documentação separada do reCAPTCHA v2 explica um mapeamento específico de variante; isso não deve ser motivo para adicionar um valor s arbitrário a toda requisição.
Resgate Seu Código de Bônus da CapSolver
Aumente seu orçamento de automação instantaneamente!
Use o código de bônus CAP26 ao recarregar sua conta CapSolver para obter um bônus extra de 5% em cada recarga — sem limites.
Resgate agora no seu Dashboard da CapSolver
Verifique o contrato na fronteira que sua aplicação realmente usa.
A documentação do serviço MCP descreve chamadas de ferramenta, enquanto a referência da API direta descreve objetos de tarefa HTTP. Um parâmetro de função em um SDK ou esquema de ferramenta não se torna automaticamente uma chave de mesmo nome no payload REST.
Suponha que sua aplicação receba website_url de um agente. Se ela chamar uma ferramenta MCP que anuncia esse argumento, a grafia pode ser apropriada. Se ela construir uma tarefa reCAPTCHA direta, o construtor da requisição deve produzir o campo documentado websiteURL. Copiar os argumentos da ferramenta sem alterações para dentro de task pula o mapeamento necessário.
Da mesma forma, um tipo anunciado por um adaptador de agente não é necessariamente um nome de classe de tarefa REST. Inspecione o esquema e o caminho de implementação atuais do adaptador em vez de tomar emprestado o nome de uma classe de um exemplo não relacionado.
Mantenha um pequeno mapeamento no código de integração e teste-o localmente. Um teste de serialização pode estabelecer que seu programa produz o formato JSON esperado. Ele não pode estabelecer que a site key pública está correta, que a conta está autorizada ou que uma resolução em produção terá sucesso.
Para usuários de Python, a documentação padrão de JSON explica como dicionários, strings, booleanos e valores nulos são serializados. Para usuários de JavaScript, a documentação do JSON.stringify ajuda a identificar onde um objeto se torna uma string JSON. Siga a API de corpo JSON do seu cliente HTTP em vez de serializar o mesmo objeto duas vezes.
Faça uma correção baseada em evidência, envie a requisição corrigida e inspecione a nova resposta antes de fazer outra mudança.
Se a tarefa for aceita e retornar um identificador assíncrono, use o fluxo documentado de getTaskResult. Não continue criando novas tarefas enquanto espera a primeira requisição aceita ser concluída.
Um novo código de erro é uma nova evidência. Por exemplo, um erro de tipo não suportado deve mover a investigação para o tipo de tarefa aceito, enquanto um erro de parsing de imagem deve movê-la para a imagem enviada. Não continue tratando toda resposta como se fosse o erro de dados original.
Se a descrição indicar uma restrição de serviço ou um uso não suportado, mudar parâmetros não relacionados não é uma solução adequada. Interrompa a tentativa e resolva a limitação documentada pelo canal suportado.
Quando o serviço retornar uma solução, o navegador ou a aplicação ainda precisa consumi-la e validá-la para a operação pretendida. Uma requisição reparada estabelece que o problema de entrada foi resolvido; ela não garante que outro campo de formulário ou regra de negócio não relacionado será aprovado.
Envie uma reprodução mínima e redigida que preserve o formato que falha e o texto exato do erro.
Inclua o tipo de tarefa, a interface usada, a versão do SDK ou pacote se aplicável, nomes e tipos de campos seguros, o código e a descrição do erro e o horário da tentativa. Inclua a referência de tarefa se alguma tiver sido retornada. Descreva a correção já tentada e a resposta resultante.
Exclua lógica de aplicação não relacionada e valores sigilosos. Se remover um campo muda o resultado, registre essa observação sem assumir que ela prova uma causa mais ampla. O objetivo é identificar a menor diferença de requisição que explica essa falha específica.
Não afirme sucesso com base apenas em um parse de JSON local. Parsing verifica sintaxe; o serviço ainda avalia seu contrato de tarefa e contexto. Manter essas verificações separadas torna o relatório de suporte muito mais fácil de agir.
Uma requisição de CAPTCHA confiável começa com o contrato correto e dados de entrada observáveis. A CapSolver fornece a interface de resolução documentada para essa etapa. Experimente a CapSolver com um fluxo de teste permitido e mantenha a verificação final da aplicação separada.
P: ERROR_INVALID_TASK_DATA significa sempre que o websiteKey está errado?
Não. O código descreve dados de tarefa inválidos de forma ampla. Leia o errorDescription e compare o payload enviado com a documentação da tarefa selecionada antes de atribuir o problema a um campo específico.
P: Devo repetir a mesma requisição várias vezes?
Uma repetição idêntica não corrige um desvio de entrada conhecido. Identifique e corrija primeiro os dados relevantes, depois inspecione a próxima resposta.
P: Uma requisição pode ser JSON válido e ainda assim ter dados de tarefa inválidos?
Sim. JSON válido garante a sintaxe. Campos obrigatórios, tipos de valor, aninhamento, seleção de tarefa e contexto do desafio são verificações separadas.
P: website_url é intercambiável com websiteURL?
Não. Use a grafia exigida pela interface específica. Um argumento de ferramenta MCP e um campo de tarefa REST direto podem usar nomes diferentes.
P: E se a API aceitar a requisição corrigida, mas a página ainda rejeitar o resultado?
Trate isso como um problema de estágio posterior. Preserve o status do resultado do solver e investigue separadamente a rejeição da página atual, em vez de assumir que o erro de entrada original persiste.

Adélia Cruz
MCP Integration Engineer
Making CapSolver tools accessible through MCP.
SOBRE O AUTOR
Corrija o erro ERROR_TASK_NOT_SUPPORTED verificando o tipo real de tarefa de CAPTCHA, o contrato da API e o mapeamento do SDK. Corrija solicitações incompatíveis antes de tentar novamente.

Corrija o erro ERROR_IP_BANNED interrompendo solicitações repetidas e inválidas à API de CAPTCHA, encontrando o primeiro erro, verificando os códigos relacionados e retomando com um teste controlado.
