Merge pull request #2186 from muriloleal13/fix/baileys-message-processor-reconnection

fix(baileys): resolve incoming message events not working after reconnection
This commit is contained in:
Davidson Gomes 2025-11-07 14:39:26 -03:00 committed by GitHub
commit 139ad9b3cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 0 deletions

View File

@ -19,6 +19,22 @@ export class BaileysMessageProcessor {
}>(); }>();
mount({ onMessageReceive }: MountProps) { mount({ onMessageReceive }: MountProps) {
// Se já existe subscription, fazer cleanup primeiro
if (this.subscription && !this.subscription.closed) {
this.subscription.unsubscribe();
}
// Se o Subject foi completado, recriar
if (this.messageSubject.closed) {
this.processorLogs.warn('MessageSubject was closed, recreating...');
this.messageSubject = new Subject<{
messages: WAMessage[];
type: MessageUpsertType;
requestId?: string;
settings: any;
}>();
}
this.subscription = this.messageSubject this.subscription = this.messageSubject
.pipe( .pipe(
tap(({ messages }) => { tap(({ messages }) => {

View File

@ -723,6 +723,11 @@ export class BaileysStartupService extends ChannelStartupService {
this.loadWebhook(); this.loadWebhook();
this.loadProxy(); this.loadProxy();
// Remontar o messageProcessor para garantir que está funcionando após reconexão
this.messageProcessor.mount({
onMessageReceive: this.messageHandle['messages.upsert'].bind(this),
});
return await this.createClient(number); return await this.createClient(number);
} catch (error) { } catch (error) {
this.logger.error(error); this.logger.error(error);