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

kobotoolbox / kpi / 22623490474
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: beccagraber/dev-1817-count-endpoints
DEFAULT BRANCH: master
Ran 03 Mar 2026 01:18PM UTC
Jobs 2
Files 882
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

03 Mar 2026 12:42PM UTC coverage: 81.906% (-0.07%) from 81.973%
22623490474

push

github

web-flow
fix(subsequences): make translations always synchronous DEV-1788 (#6762)

### đŸ“Ŗ Summary
Fixes an issue where if an automatic translation took too long, users
would be taken back to the translation provider disclaimer screen with
no explanation.


### 💭 Notes
Asyncronous translation was only half-supported. The frontend did not
actually poll for more responses and the celery task for polling on the
backend raised errors. This PR makes translation always syncronous from
the user's POV. If it takes too long, it will tell the user we timed out
waiting for the translation to finish, but it may still be in progress.
We advise users to try again in 5 minutes. As long as the translation is
still running in google, they will get this message.

Important note: This does have the unfortunate consequence that if they
see the "try again in 5 minutes" and immediately try again, they will
probably get the same error almost instantaneously rather than after
another long interval. This is because instead of resubmitting the
operation, we just check the one in progress and if it still has status
'RUNNING,' we immediately raise a SubsequenceTimeoutError. It's not
ideal user behavior but we did warn them.

We made translations syncronous instead of better supporting asyncronous
translations because
1. it's very rare they take longer than a syncronous request would allow
2. full support would require non-trivial frontend and backend changes

This PR does not address the issues in the polling task that make it
unsuitable for translations (and eventually QA) but does add FIXMEs so
future developers are aware of the problems. This is mainly for
expedience since this is a release blocker.



### 👀 Preview steps

1. â„šī¸ have an account and a project with an audio question and at least
one submission
2. In django admin, set the Constance config
`ASR_MT_GOOGLE_REQUEST_TIMEOUT` to 1
3. For easier testing, update `GoogleTranslationService.MAX_SYNC_CHARS`
to something small like 10
... (continued)

7403 of 11474 branches covered (64.52%)

4 of 9 new or added lines in 4 files covered. (44.44%)

346 existing lines in 20 files now uncovered.

28464 of 34752 relevant lines covered (81.91%)

1.61 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
47.0
15.37% kobo/apps/subsequences/integrations/google/google_translate.py
3
84.75
-3.32% kobo/apps/subsequences/actions/base.py

Uncovered Existing Lines

Lines Coverage ∆ File
1
64.62
-1.54% kpi/utils/hash.py
2
93.88
-1.96% kobo/apps/hook/views/v2/hook_log.py
2
26.83
0.0% kobo/apps/subsequences/tasks.py
2
84.62
-9.13% kobo/celery.py
4
93.13
-1.61% kobo/apps/openrosa/apps/logger/signals.py
4
0.0
0.0% kobo/settings/prod.py
5
84.75
-3.32% kobo/apps/subsequences/actions/base.py
6
87.76
0.52% kobo/apps/hook/models/hook_log.py
6
86.02
0.15% kobo/apps/hook/tasks.py
7
84.91
0.29% kobo/apps/trash_bin/utils/project.py
9
89.93
0.04% kpi/views/v2/data.py
13
0.0
0.0% kobo/apps/long_running_migrations/jobs/0013_migrate_mfa_data.py
14
69.39
2.72% kobo/apps/openrosa/apps/logger/utils/counters.py
17
0.0
0.0% kobo/apps/long_running_migrations/jobs/0011_backfill_exceeded_limit_counters.py
17
82.41
-11.53% kobo/apps/openrosa/apps/logger/utils/instance.py
23
80.0
-3.5% kobo/apps/hook/models/service_definition_interface.py
34
93.44
0.38% kpi/models/asset.py
41
76.88
0.23% kobo/settings/base.py
43
44.58
-24.39% kpi/utils/storage.py
96
76.11
0.4% kpi/deployment_backends/openrosa_backend.py
Jobs
ID Job ID Ran Files Coverage
1 22623490474.1 03 Mar 2026 01:18PM UTC 880
79.58
2 22623490474.2 03 Mar 2026 01:20PM UTC 882
81.87
Source Files on build 22623490474
  • Tree
  • List 882
  • Changed 26
  • Source Changed 0
  • Coverage Changed 26
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 3c122522 on github
  • Prev Build on release/2.026.07 (#22325904133)
  • Next Build on release/2.026.07 (#22677776538)
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