Erros e novas tentativas
Esta página é uma tradução do inglês. Se as duas diferirem, a página em inglês é a correta. Ler a página em inglês
Qualquer falha lançada por uma biblioteca é um de quatro erros, e os quatro partilham um tipo base, pelo que um único handler consegue apanhá-los todos.
- Erro da API. A API recusou o pedido. Contém o estado HTTP, um
codeestável para ramificar a sua lógica e uma mensagem na língua que pediu. - Erro de OAuth. O endpoint de tokens recusou as suas credenciais ou os âmbitos que pediu.
- Erro de manutenção. A API está brevemente indisponível para manutenção.
- Erro de transporte. Não chegou nenhuma resposta utilizável: a ligação falhou ou excedeu o tempo limite, ou não foi possível ler a resposta.
Cancelar uma chamada não é um erro. Manifesta-se como o cancelamento próprio da sua linguagem.
O que é repetido
Um 429 ou 503 que indique quanto tempo esperar, num cabeçalho Retry-After de 60 segundos ou menos, é repetido após exatamente essa espera. Uma chamada faz no máximo 3 tentativas. Pode desativar as novas tentativas definindo o máximo como 1.
Tudo o resto é lançado de imediato:
- um 429 ou 503 sem
Retry-After; - uma espera superior a 60 segundos, que a biblioteca não passará dentro da sua chamada. O erro contém
retry_after, para que possa agendar a nova tentativa por si próprio; - um erro de transporte, porque o pedido pode já ter chegado à API;
- qualquer stream que já tenha entregado um evento.