Skip to content

Commit cfd2102

Browse files
possebonclaude
andcommitted
fix(evolution): prevent instances from getting stuck in 'closing' (EvolutionAPI#2420)
Forces Evolution integration instances to 'open' status on connect and ensures auto-reconnect on startup regardless of stored connection status. Upstream PR: EvolutionAPI#2420 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3cdb403 commit cfd2102

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/api/controllers/instance.controller.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,10 @@ export class InstanceController {
156156
getQrcode = instance.qrCode;
157157
}
158158

159+
if (instanceData.integration === Integration.EVOLUTION) {
160+
await instance.connectToWhatsapp();
161+
}
162+
159163
const result = {
160164
instance: {
161165
instanceName: instance.instanceName,

src/api/integrations/channel/evolution/evolution.channel.service.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,15 @@ export class EvolutionStartupService extends ChannelStartupService {
115115

116116
public async connectToWhatsapp(data?: any): Promise<any> {
117117
if (!data) {
118+
this.stateConnection = { state: 'open' };
119+
120+
if (this.instanceId) {
121+
await this.prismaRepository.instance.update({
122+
where: { id: this.instanceId },
123+
data: { connectionStatus: 'open' },
124+
});
125+
}
126+
118127
this.loadChatwoot();
119128
return;
120129
}

src/api/services/monitor.service.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,11 @@ export class WAMonitoringService {
293293
ownerJid: instanceData.ownerJid,
294294
});
295295

296-
if (instanceData.connectionStatus === 'open' || instanceData.connectionStatus === 'connecting') {
296+
if (
297+
instanceData.connectionStatus === 'open' ||
298+
instanceData.connectionStatus === 'connecting' ||
299+
instanceData.integration === Integration.EVOLUTION
300+
) {
297301
this.logger.info(
298302
`Auto-connecting instance "${instanceData.instanceName}" (status: ${instanceData.connectionStatus})`,
299303
);

0 commit comments

Comments
 (0)