Capture um erro
Toda solicitação que falha lança uma subclasse dePolymorfaError:
Os códigos de erro nunca mudam de significado. A API pode adicionar novos
códigos, então trate códigos desconhecidos.
isKnownPolymorfaErrorCode(code)
informa se o SDK instalado conhece um código.
Classes de erro
402: a equipe não pode pagar
Ações pagas, como iniciar um Número pago, reservam crédito primeiro. Um402
significa que a equipe não pode pagar pela solicitação ou não tem o direito de
uso necessário. Tentar novamente não resolve. Verifique o saldo e o plano no
Console e depois tente de novo. O SDK nunca tenta novamente um 402.
409: o recurso mudou
Configurações com revisão, como as configurações de chamadas e a configuração do Número, falham comstate_conflict quando outra pessoa as alterou depois que
você as leu. Leia o valor atual, aplique sua alteração de novo e envie a nova
revisão.
Um 409 com um código idempotency_* diz respeito à sua chave de idempotência.
Veja Tente novamente uma escrita com segurança.
429: limite de taxa atingido
rateLimitReason informa qual limite foi aplicado, como request_rate ou
whatsapp. Aguarde o tempo do cabeçalho retry-after antes de enviar de novo.
O SDK já faz isso nas solicitações que ele tenta novamente. Veja
Limites de taxa.
Novas tentativas automáticas
O SDK tenta novamente uma solicitação quando as duas condições são verdadeiras:- A solicitação é um
GET,HEADouOPTIONS, ou tem umaidempotencyKey. - Ela falhou com um erro de rede, um timeout ou o status
408,409,429ou5xx.
Retry-After quando a API o envia, até 60 segundos. Caso
contrário, aumenta a espera exponencialmente, até 5 segundos entre tentativas.
Por padrão, ele tenta novamente duas vezes. Defina maxNetworkRetries no
cliente ou na solicitação para mudar isso, ou use 0 para desativar as novas
tentativas.
Uma escrita sem chave de idempotência é enviada uma única vez. O SDK não tenta
novamente essa escrita, porque não consegue saber se a primeira tentativa foi
executada.
Tente novamente uma escrita com segurança
Uma chave de idempotência torna uma escrita segura para repetir. A API a executa uma vez e retorna o resultado armazenado em cada repetição com a mesma chave:messages.send,
messages.react, chats.editMessage, chats.deleteMessage,
channels.reactToMessage, campaigns.create, campaigns.launch,
campaigns.pause, campaigns.resume, campaigns.stop, webhooks.test e
operations.cancel.
Leia todas as páginas
Listas de eventos, webhooks, entregas de webhook, operações, registros de chamadas e opt-outs de chamadas retornam umaCursorPage. Percorra-a com
for await e o SDK busca as próximas páginas para você:
items, hasMore e nextPage():
nextPage() retorna null depois da última página. page.response.metadata
contém os metadados da resposta.
Alguns métodos retornam o envelope de página da API diretamente, como
{ data, page }. Passe page.nextCursor como cursor enquanto
page.hasMore for true: