Journey / Campaign Delivery Failures (Incorrect Delivered Count / Not Delivered)

FrequentlyAsked Question / Exact Problem

  1. “Journey shows Failed status even though we ran it for 7.5 lakh customers.”
  2. “Campaign delivery count shows 53K but Karix says 4 lakh delivered.”
  3. “Delivery report for Chumbak shows read/delivered/clicked data missing.”
  4. “FirstConnectt SMS delivery count is doubled — targeted 8 but delivered shows 16.”
  5. “Pepe delivery report showing incorrect numbers.”

Affected Tenant / Context
Pepe Jeans (Karix/FirstConnectt SMS), Chumbak (Qikchat WhatsApp), Sathya (Robeeta SMS),
Mufti, Otto, General across tenants using external message providers.

Root Cause
Multiple causes identified across incidents:

  1. ClickHouse connection pool exhausted — For very large journeys, CH connections were
    not being returned to the pool when errors occurred. This caused the journey to fail midrun. Fix: added proper catch block to return connections on error.
  2. IoT Web API downtime — Delivery callback webhooks from Karix to CASA’s IoT Web API
    were being dropped because the API was down. 44K out of 97K delivery responses were lost. Creating a new service replaced the old one and prevented recurrence.
  3. Qikchat delivery failure — template parameter mismatch — Chumbak’s WhatsApp
    campaign failed because the template was created with a video attachment in Qikchat but CASA was passing an image in the API call. Qikchat rejected the message and didn’t send delivery callbacks.
  4. FirstConnectt duplicate delivery callbacks — For SMS messages over 160 characters,
    FirstConnectt splits them into 2 parts and sends a delivery callback for each part. CASA counted both as separate deliveries, inflating the delivered count.
  5. NullPointerException in Infersales — A code-level NPE in the Infersales component
    prevented journey “Conversion” marking for some tenants (Mufti, Chumbak). Dineshr
    fixed and reprocessed the affected queue.

Common Debugging Steps (For CS Team)

  1. Check JourneyAnalytics in the dashboard. Note: Journey Builder count ≠ Campaign
    Analytics count because JourneyAnalytics uses unique passed_rule_id while
    Campaign Analytics uses unique contact_mobile . Some difference is expected.
  2. For WhatsApp campaigns: log into the Qikchat portal and check delivery status there. If messages show as “Failed” in Qikchat, the issue is a template mismatch — CS can verify this directly without dev.
  3. For SMS campaigns via FirstConnectt: if delivered count is double the targeted count, check if the SMS template is over 160 characters.
  4. If a journey shows “Failed” status (not just low delivery): escalate immediately with Journey URL and Journey ID.
  5. For Chumbak/Qikchat: ask the provider directly for delivery report CSV if the analytics are missing, then share with CASA dev to upload manually.

Fix Made & Developer Conclusion

  1. Pepe journey failed: ClickHouse connection pool fix deployed. Journey re-triggered next
    morning. For large journeys (7.5 lakh+), minimum wait time between retriggers set to 2
    hours.
  2. Pepe delivery count mismatch (53K vs 4L): IoT Web API was down during the campaign.
    New service created. Historical data requested from Karix via SFTP to manually upload
    missing delivery statuses.
  3. Chumbak Qikchat: Template parameter mismatch confirmed. CS team now trained to
    verify template in Qikchat portal before escalating.
  4. FirstConnectt double-count: Confirmed as provider behaviour (160-char splitting).Provider must handle deduplication on their end. CASA team informed. Taruun Prasath GS fixed the delivery status mapping issue (field mismatch in webhook parsing).
  5. NullPointerException/Conversions: Fix deployed by Dineshr. Affected queue
    reprocessed. Conversion data recovered.

Exact Dev to Reach Out To
Dineshr — Journey execution, queue, Qikchat/Karix integration
Taruun Prasath G S — Delivery webhook, notification service, FirstConnectt
Dharshini — Journey analytics, NullPointerException in Infersales, delivery report
Vishnuj — IoT Web API, Karix SFTP integration