diff --git a/build.gradle b/build.gradle index 6f2a531..5d77fa3 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { } group = 'com.flexcodelabs' -version = '0.0.60' +version = '0.0.61' description = 'Flextuma App' java { diff --git a/src/main/java/com/flexcodelabs/flextuma/modules/whatsapp/services/WhatsAppWebhookConfigService.java b/src/main/java/com/flexcodelabs/flextuma/modules/whatsapp/services/WhatsAppWebhookConfigService.java index 3ecb7b0..9f1fb01 100644 --- a/src/main/java/com/flexcodelabs/flextuma/modules/whatsapp/services/WhatsAppWebhookConfigService.java +++ b/src/main/java/com/flexcodelabs/flextuma/modules/whatsapp/services/WhatsAppWebhookConfigService.java @@ -199,6 +199,14 @@ private Map configHealth(List configs, List health.put(config.getId(), "PAUSED"); continue; } + // A connector is optional (only needed to download inbound media), so its absence + // isn't a problem -- but a linked connector that's been deactivated will silently + // fail every media download, and nothing else here would ever surface that. + SmsConnector connector = config.getConnector(); + if (connector != null && !Boolean.TRUE.equals(connector.getActive())) { + health.put(config.getId(), "DISCONNECTED"); + continue; + } List configDeliveries = deliveriesByConfig.getOrDefault(config.getId(), List.of()); boolean retrying = configDeliveries.stream().anyMatch(d -> d.getStatus() == WhatsAppRelayStatus.PENDING || d.getStatus() == WhatsAppRelayStatus.PROCESSING