ODocumentation Index
Fetch the complete documentation index at: https://zapo.to/llms.txt
Use this file to discover all available pages before exploring further.
zapo expõe problemas por três canais de evento:
connectioncomstatus: 'close'— o socket caiu, trazendo umreasone umcodeopcional.stream_failure— uma falha de nível de stream, geralmente logo antes de um close.stanza_error— uma única requisição/stanza foi rejeitada, sem derrubar a conexão.
isLogout, shutdown gracioso), veja Reconexão. Esta página é sobre entender por que algo falhou.
Razões de desconexão
O eventoclose é { status: 'close', reason, code, isLogout }. reason é uma string WaDisconnectReason; code é um WaConnectionCode numérico (ou null). Use-os para decidir se deve reconectar:
stream_error_force_login (código 515) não é fatal — é um “reconecte agora” de rotina que o servidor envia logo após o pareamento e ocasionalmente durante a sessão. Apenas reconecte com as credenciais armazenadas.stream_error_force_login, stream_error_ack, stream_error_xml_not_well_formed, stream_error_other, failure_service_unavailable e comms_stopped. client_disconnected significa que você chamou disconnect() — esperado, não reconecte.
Referência de códigos
Quando presente, ocode (no evento close e em stream_failure.failureCode) é um de:
| Código | Significado | Ação |
|---|---|---|
401 | Não autorizado | Refazer pareamento |
402 | Banido temporariamente | Backoff agressivo |
403 | Bloqueado (locked) | Parar |
405 | Cliente muito antigo | Atualizar version |
406 | Banido | Parar |
409 | User agent inválido | Corrigir fingerprint do dispositivo |
500 | Erro interno do servidor | Tentar depois |
503 | Serviço indisponível | Backoff e tentar de novo |
515 | Reconexão necessária | Reconectar agora |
516 | Logout forçado | Refazer pareamento (isLogout: true) |
WA_DISCONNECT_REASONS e os códigos de stream 515/516 em WA_STREAM_SIGNALING, ambos exportados da raiz do pacote. Os valores numéricos de code são tipados como WaConnectionCode (também exportado).
Falhas de stream
stream_failure (WaIncomingFailureEvent) carrega o detalhe bruto da falha e geralmente precede uma desconexão — registre para contexto:
Stanzas de erro
stanza_error (WaIncomingErrorStanzaEvent) reporta que uma única stanza foi rejeitada — por exemplo uma query malformada ou uma requisição limitada (throttle). A conexão continua de pé:
client.message.send ou client.lowlevel.query rejeitado normalmente também rejeita a própria promise, então envolva chamadas individuais em try/catch para tratamento por operação; use stanza_error para visibilidade de erros que não estão atrelados a uma chamada que você deu await.
Veja também
Reconexão
O loop de backoff e o tratamento de
isLogout.Troubleshooting
Armadilhas comuns e respostas rápidas.
