Saltar al contenido principal

Manejo de Errores

Todos los métodos del cliente lanzan excepciones en caso de fallo. Los errores están tipados para facilitar su manejo.

Clases de Errores

import {
WhatsmeowError, // Base class for all whatsmeow errors
TimeoutError, // IPC command timed out
ProcessExitedError // Go binary crashed or exited
} from "@whatsmeow-node/whatsmeow-node";

Códigos de Error Comunes

CódigoOrigenSignificado
ERR_TIMEOUTTSTimeout del comando IPC (predeterminado: 30s)
ERR_PROCESS_EXITEDTSEl binario de Go se detuvo o terminó
ERR_NOT_INITGoinit() no fue llamado todavía
ERR_INVALID_ARGSGoArgumentos faltantes o inválidos
ERR_INVALID_JIDGoJID con formato incorrecto
ERR_UNKNOWN_CMDGoComando IPC no reconocido
ERR_ALREADY_INITGoinit() fue llamado más de una vez
ERR_STOREGoNo se pudo abrir la base de datos de sesión

Códigos de Error por Método

Cada método tiene su propio código de error para que puedas identificar exactamente qué falló:

ÁreaCódigos de Error
ConexiónERR_CONNECT, ERR_PAIR, ERR_QR, ERR_LOGOUT
MensajeríaERR_SEND, ERR_REVOKE, ERR_MARK_READ, ERR_PARSE
MediosERR_UPLOAD, ERR_DOWNLOAD, ERR_READ_FILE, ERR_TEMPFILE, ERR_WRITE
GruposERR_CREATE_GROUP, ERR_GROUP_INFO, ERR_GROUPS, ERR_GROUP_TOPIC, ERR_SET_GROUP_NAME, ERR_SET_GROUP_DESC, ERR_SET_GROUP_PHOTO, ERR_SET_GROUP_ANNOUNCE, ERR_SET_GROUP_LOCKED, ERR_SET_MEMBER_ADD_MODE, ERR_SET_JOIN_APPROVAL, ERR_INVITE_LINK, ERR_JOIN_GROUP, ERR_LEAVE_GROUP, ERR_UPDATE_PARTICIPANTS, ERR_GROUP_REQUESTS, ERR_UPDATE_REQUESTS
ComunidadesERR_LINK_GROUP, ERR_UNLINK_GROUP, ERR_SUB_GROUPS, ERR_LINKED_PARTICIPANTS
NewslettersERR_CREATE_NEWSLETTER, ERR_NEWSLETTERS, ERR_NEWSLETTER_INFO, ERR_NEWSLETTER_MESSAGES, ERR_NEWSLETTER_UPDATES, ERR_NEWSLETTER_SUBSCRIBE, ERR_NEWSLETTER_REACTION, ERR_NEWSLETTER_MARK_VIEWED, ERR_NEWSLETTER_MUTE, ERR_FOLLOW_NEWSLETTER, ERR_UNFOLLOW_NEWSLETTER
ContactosERR_CHECK, ERR_USER_INFO, ERR_USER_DEVICES, ERR_PROFILE_PIC, ERR_BUSINESS_PROFILE, ERR_SET_STATUS
PrivacidadERR_GET_PRIVACY, ERR_SET_PRIVACY, ERR_GET_STATUS_PRIVACY, ERR_SET_DISAPPEARING, ERR_BLOCKLIST, ERR_UPDATE_BLOCKLIST
PresenciaERR_PRESENCE, ERR_CHAT_PRESENCE, ERR_SUBSCRIBE_PRESENCE
QR y EnlacesERR_QR_LINK, ERR_RESOLVE_QR, ERR_RESOLVE_BIZ_LINK
EncuestasERR_POLL_VOTE
BotsERR_BOT_LIST, ERR_BOT_PROFILES
Estado de AppERR_FETCH_APP_STATE, ERR_MARK_NOT_DIRTY
CriptografíaERR_DECRYPT, ERR_ENCRYPT
LlamadasERR_REJECT_CALL
OtrosERR_SET_PASSIVE, ERR_ACCEPT_TOS

Manejo Básico

try {
await client.sendMessage(jid, { conversation: "hello" });
} catch (err) {
if (err instanceof WhatsmeowError) {
console.error(`WhatsApp error [${err.code}]: ${err.message}`);
}
}

Manejo de Errores Específicos

try {
const profile = await client.getBusinessProfile(jid);
} catch (err) {
if (err instanceof WhatsmeowError) {
switch (err.code) {
case "ERR_BUSINESS_PROFILE":
console.log("Not a business account");
break;
case "ERR_INVALID_JID":
console.error("Bad JID format");
break;
default:
throw err;
}
}
}