From f4a019c35d5290f31f7cb42c4a3d92c2fbef653b Mon Sep 17 00:00:00 2001 From: Mikhail Ushakov Date: Sat, 7 Mar 2026 11:12:51 +0500 Subject: [PATCH] fix: use correct path for token file deletion in clearSessionData and logOutSession MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Token files in `tokens/` directory were never deleted because of broken path construction using string concatenation (`__dirname + '../../../tokens/...'`). This resulted in an invalid path that `fs.existsSync()` always returned false for. Use `path.resolve(process.cwd(), 'tokens', ...)` instead — the same approach used by `FileTokenStore.resolverPath()` in the WPPConnect client library. Fixes #2102 Co-Authored-By: Claude Opus 4.6 --- src/controller/miscController.ts | 9 +++++---- src/controller/sessionController.ts | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/controller/miscController.ts b/src/controller/miscController.ts index f0479f4a4c..cf95cbc7a7 100644 --- a/src/controller/miscController.ts +++ b/src/controller/miscController.ts @@ -16,6 +16,7 @@ import { Request, Response } from 'express'; import fs from 'fs'; +import path from 'path'; import { logger } from '..'; import config from '../config'; @@ -160,10 +161,10 @@ export async function clearSessionData(req: Request, res: Response) { delete clientsArray[req.params.session]; await req.client.logout(); } - const path = config.customUserDataDir + session; - const pathToken = __dirname + `../../../tokens/${session}.data.json`; - if (fs.existsSync(path)) { - await fs.promises.rm(path, { + const pathUserData = config.customUserDataDir + session; + const pathToken = path.resolve(process.cwd(), 'tokens', `${session}.data.json`); + if (fs.existsSync(pathUserData)) { + await fs.promises.rm(pathUserData, { recursive: true, }); } diff --git a/src/controller/sessionController.ts b/src/controller/sessionController.ts index 802a420a3d..688a5f500b 100644 --- a/src/controller/sessionController.ts +++ b/src/controller/sessionController.ts @@ -17,6 +17,7 @@ import { Message, Whatsapp } from '@wppconnect-team/wppconnect'; import { Request, Response } from 'express'; import fs from 'fs'; import mime from 'mime-types'; +import path from 'path'; import QRCode from 'qrcode'; import { Logger } from 'winston'; @@ -300,7 +301,7 @@ export async function logOutSession(req: Request, res: Response): Promise { setTimeout(async () => { const pathUserData = config.customUserDataDir + req.session; - const pathTokens = __dirname + `../../../tokens/${req.session}.data.json`; + const pathTokens = path.resolve(process.cwd(), 'tokens', `${req.session}.data.json`); if (fs.existsSync(pathUserData)) { await fs.promises.rm(pathUserData, {