I'm trying to build a basic WhatsApp bot using the @whiskeysockets/baileys library. I’ve set up the bot to connect using QR authentication, and it connects successfully. However, when I send or receive a message, it crashes with the following error:
vbnet Copy Edit TypeError: logger.trace is not a function at Object.get (.../auth-utils.js:42:72) ...
i am using Baileys: @whiskeysockets/baileys ,Node.js: v22.15.1 and pino as logger
this code in my index is as follows i,ve only set up basic connection for now and a response to "ping" message for testing
const {
default: makeWASocket,
fetchLatestBaileysVersion,
useMultiFileAuthState,
makeCacheableSignalKeyStore,
DisconnectReason
} = require('@whiskeysockets/baileys');
const qrcode = require('qrcode-terminal');
const fs = require('fs');
const pino = require('pino');
const logger = pino({
level: 'trace',
transport: {
target: 'pino-pretty',
options: { colorize: true }
}
});
async function startBot() {
const { state, saveCreds } = await useMultiFileAuthState('./auth');
const { version } = await fetchLatestBaileysVersion();
const sock = makeWASocket({
version,
logger,
auth: {
creds: state.creds,
keys: makeCacheableSignalKeyStore(state.keys, fs)
}
});
sock.ev.on('creds.update', saveCreds);
sock.ev.on('connection.update', ({ connection, lastDisconnect, qr }) => {
if (qr) {
qrcode.generate(qr, { small: true });
console.log('📱 Scan the QR code above with WhatsApp');
}
if (connection === 'open') {
console.log('✅ Connected to WhatsApp!');
} else if (connection === 'close') {
const shouldReconnect =
lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut;
console.log('🔌 Disconnected', shouldReconnect ? 'Reconnecting...' : 'Logged out.');
if (shouldReconnect) startBot();
}
});
sock.ev.on('messages.upsert', async ({ messages }) => {
const m = messages[0];
if (!m.message || m.key.fromMe) return;
const text = m.message.conversation || m.message.extendedTextMessage?.text || '';
const jid = m.key.remoteJid;
console.log(`📥 [${jid}]: ${text}`);
if (text.toLowerCase() === 'ping') {
await sock.sendMessage(jid, { text: 'pong ✅' });
}
});
}
startBot();
Verified that pino is properly installed and configured.
Tried replacing the logger with a custom logger that includes a .trace() method.
Still getting the same error when a message is received or sent here is a more detailed error log that prints in console
d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Utils\auth-utils.js:42
logger === null || logger === void 0 ? void 0 : logger.trace({ items: idsToFetch.length }, 'loading from store');
^
TypeError: logger.trace is not a function
at Object.get (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Utils\auth-utils.js:42:72)
at Object.get (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Utils\auth-utils.js:96:48)
at assertSessions (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-send.js:171:51)
at d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-send.js:405:23
at Object.transaction (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Utils\auth-utils.js:135:32)
at relayMessage (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-send.js:294:30)
at sendPeerDataOperationMessage (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-send.js:218:29)
at requestPlaceholderResend (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-recv.js:744:16)
at async sendRetryRequest (d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-recv.js:99:27)
at async d:\redseclabs\whatsapp-bot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-recv.js:653:33