diff --git a/src/WAConnection/0.Base.ts b/src/WAConnection/0.Base.ts index 608ef81..63cf06f 100644 --- a/src/WAConnection/0.Base.ts +++ b/src/WAConnection/0.Base.ts @@ -214,7 +214,7 @@ export class WAConnection extends EventEmitter { const response = await this.waitForMessage(tag, json, timeoutMs) if (expect200 && response.status && Math.floor(+response.status / 100) !== 2) { - if (response.status >= 500) { + if (response.status === 599) { this.unexpectedDisconnect (DisconnectReason.badSession) const response = await this.query ({json, binaryTags, tag, timeoutMs, expect200, waitForOpen}) return response diff --git a/src/WAConnection/3.Connect.ts b/src/WAConnection/3.Connect.ts index 1562235..79112fa 100644 --- a/src/WAConnection/3.Connect.ts +++ b/src/WAConnection/3.Connect.ts @@ -57,8 +57,9 @@ export class WAConnection extends Base { return this } catch (error) { - const loggedOut = error instanceof BaileysError && error.status >= 400 + const loggedOut = error instanceof BaileysError && error.status === 401 if (loggedOut && this.cancelReconnect) this.cancelReconnect () + this.closeInternal (loggedOut ? 'invalid_session' : error.message) throw error } @@ -273,8 +274,8 @@ export class WAConnection extends Base { this.cancelReconnect = null break } catch (error) { - // don't continue reconnecting if error is 400 - if (error instanceof BaileysError && error.status >= 400) { + // don't continue reconnecting if error is 401 + if (error instanceof BaileysError && error.status === 401) { break } this.log (`error in reconnecting: ${error}, reconnecting...`, MessageLogLevel.info) diff --git a/src/WAConnection/Constants.ts b/src/WAConnection/Constants.ts index 3632be5..52cd89d 100644 --- a/src/WAConnection/Constants.ts +++ b/src/WAConnection/Constants.ts @@ -76,7 +76,7 @@ export enum DisconnectReason { /** The connection was lost, called when the server stops responding to requests */ lost = 'lost', /** When WA Web is opened elsewhere & this session is disconnected */ - replaced = 'intentional', + replaced = 'replaced', /** The credentials for the session have been invalidated, i.e. logged out either from the phone or WA Web */ invalidSession = 'invalid_session', /** Received a 500 result in a query -- something has gone very wrong */