Resposta direta
Repita uma chamada somente depois de distinguir timeout/transporte de uma resposta HTTP já recebida; registre tentativa e motivo para não criar duplicação silenciosa.
Pré-requisitos e passos
- Guarde o status ou erro da primeira tentativa.
- Repita apenas em uma falha de transporte claramente identificada e com limite pequeno de tentativas.
- Se já houver resposta do servidor, pare e inspecione o corpo antes de reenviar.
Exemplo copiável
for (let attempt = 1; attempt <= 2; attempt += 1) {
try {
const response = await fetch("https://api.mandapi.com/v1/chat/completions", requestOptions);
if (response.ok || response.status === 401) break;
} catch (error) {
if (attempt === 2) throw error;
}
}
Como conferir o resultado
O ledger registra 200 para o teste válido e 401 para chave inválida; ele não define uma política de retry do serviço.
