Pular para o conteúdo principal

Erros

Todo erro da AI Web Push API tem o mesmo formato, seja qual for o status HTTP: um JSON com um único campo message, em inglês, descrevendo o problema.

{ "message": "..." }

Quando mais de um campo está errado na mesma chamada, as mensagens vêm juntas separadas por vírgula:

{ "message": "Title is required, Link is required, TTL must be between 0 and 28 days in seconds" }

O que cada status significa

StatusSignificadoO que fazer
400Algum dado da chamada está erradoLeia o message, corrija o campo e tente de novo
403Chave ausente ou inválida, ou operação não liberada para a contaConfira o header Authorization e o plano
404A campanha não existe ou não é do seu siteConfira o ID e a chave usada
409A campanha já foi enviada e não pode ser excluídaNada a fazer, o envio é definitivo
500Falha do nosso ladoTente novamente; se persistir, fale com o suporte

Como tratar no código

  • Não repita chamadas que deram 4xx. O problema está na requisição (dado, chave ou ID); repetir igual devolve o mesmo erro. Corrija e chame de novo.
  • Repita com cuidado em 500. Espere alguns segundos entre tentativas. Se criou uma campanha e recebeu 500, confira com POST /campaigns antes de criar outra, para não duplicar o envio.
  • Guarde o message no log. Ele já diz qual campo falhou; é o que o suporte vai pedir.
  • Trate 409 como sucesso do envio. Ele só aparece no DELETE de uma campanha já enviada.

Se um 500 persistir, mande o horário, o método chamado e o message para contato@aiwebpush.com ou pela página de contato.

Mensagens de validação (400)

Na criação da campanha:

MensagemCausa
Title is requiredFaltou o título
Title must be between 3 and 100 charactersTítulo curto ou longo demais
Body is requiredFaltou o texto
Body must be between 3 and 300 charactersTexto curto ou longo demais
Link is requiredFaltou o link de destino
At least one topic or country must be specifiedNenhum público informado
Call to action must not exceed 20 charactersTexto do botão longo demais
Icon must be a valid URL / Image must be a valid URLA URL precisa começar com https://
Invalid campaign statusUse published, draft ou failed
Invalid schedule modeUse now ou scheduled
Schedule date is required for schedule modeFaltou a data no agendamento
Invalid schedule date format. Use ISO format (e.g. 2025-05-02T18:30:00Z)Data fora do formato UTC
TTL must be between 0 and 28 days in secondsTTL fora da faixa permitida

Na listagem e na consulta:

MensagemCausa
limit must be a positive numberlimit precisa ser maior que zero
Invalid startDate format. Use ISO format (e.g. 2025-05-02T18:30:00Z)startDate fora do formato UTC
Invalid endDate format. Use ISO format (e.g. 2025-05-02T18:30:00Z)endDate fora do formato UTC
startDate must be less than or equal to endDateO intervalo está invertido
dateField must be createdAt or scheduleDateValor não permitido em dateField
Invalid status values: foo. Allowed: draft, scheduled, sent, failedStatus desconhecido no filtro
cursor must be a non-empty stringO cursor veio vazio ou não é texto
Invalid pagination cursorO cursor foi alterado ou veio de outro site
campaignId is requiredFaltou o ID na URL
Invalid JSON bodyO corpo enviado não é um JSON válido

As regras de cada campo estão em Limites.