• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 22070819676
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 16 Feb 2026 05:13PM UTC
Jobs 2
Files 883
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Feb 2026 04:39PM UTC coverage: 81.374% (+0.02%) from 81.35%
22070819676

push

github

web-flow
fix(hooks): prevent missing logs and add worker failure recovery DEV-1728 (#6725)

### 📣 Summary
REST Services hooks now reliably create logs for all submissions and
recover from Celery worker interruptions, preventing silent failures and
data loss.

### 📖 Description
Two new Celery periodic tasks have been added to automatically recover
from REST Service processing failures.

The first task, `retry_stalled_pending_submissions`, detects submissions
that were queued but never processed due to worker failures. It
automatically re-queues submissions that have been waiting for more than
2 hours without any processing attempt. This ensures submissions
eventually reach their external endpoints even after worker crashes. You
can monitor its activity by checking Celery logs for messages like
"Re-queued X stalled submissions".

The second task, `mark_zombie_processing_submissions`, detects
submissions that started processing but were interrupted mid-flight.
When processing takes longer than 2 hours, it marks those submissions as
failed, indicating the worker was likely killed during execution. It's
important to note that these submissions may have already reached the
external endpoint before the interruption occurred. The failure message
advises users to verify manually on the remote server to avoid duplicate
submissions. Monitor this task through logs showing "Marked X zombie
submissions as failed".

Both tasks use the `HOOK_PROCESSING_TIMEOUT` setting (default: 120
minutes) and run periodically as defined in `CELERY_BEAT_SCHEDULE`. No
additional configuration is required as they work out of the box.

7240 of 11333 branches covered (63.88%)

92 of 103 new or added lines in 9 files covered. (89.32%)

27865 of 34243 relevant lines covered (81.37%)

1.6 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
66.1
0.0% kobo/apps/hook/views/v2/hook.py
2
87.23
3.56% kobo/apps/hook/models/hook_log.py
2
33.33
0.0% kobo/apps/hook/utils/lazy.py
6
83.5
3.71% kobo/apps/hook/models/service_definition_interface.py
Jobs
ID Job ID Ran Files Coverage
1 22070819676.1 16 Feb 2026 05:13PM UTC 881
79.02
2 22070819676.2 16 Feb 2026 05:18PM UTC 883
81.34
Source Files on build 22070819676
  • Tree
  • List 883
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • a94a40ff on github
  • Prev Build on release/2.026.03 (#21994242591)
  • Next Build on release/2.026.03 (#22113322217)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc