Please help test Enketo 4.1.1

Hello everyone,

We would like to upgrade and soon to version 4.1.1, but we would like to invite the community to test this new release first.

If you’re willing to help out, please proceed to You may register a new account there if you do not have one already. Please do not store important data on this server: it is for testing ONLY, and all forms and submissions may be lost at any time!

Here is a list of Enketo changes, pasted from Enketo’s change log, that have been added between version 3.0.5 (the version KoboToolbox currently uses, having been downgraded from 3.1.0 after a memory leak) and version 4.1.1.

Thanks for being a part of the KoboToolbox community.

  • Updated French, German, Dutch and Spanish translations (#438)
  • fixed: spelling error (#441)
  • Fix: don’t escape HTML entities in alert dialogs (#440)
  • Update meta selector used when setting deprecatedID (enketo-core#900)
  • Fix: preserve geopicker zoom, center map on user location on load, no error clicking pin (enketo-core#905)
  • Fix: don’t use removed repeat instance as context for relevance by @eyelidlessness in (enketo-core#909)
  • Added: Support GeoJSON secondary instances (#434)
  • Fixed: upload button gets enabled before queue is empty, closes #432 (#433)
  • Fix (test): ensure config-model tests are properly isolated (#430)
  • Fix/missing media healing offline 419 (#424)
  • Added missing item to changelog for version 3.0.2 (#427)
  • Use a more helpful error message if external data is missing in non-preview views (#423)
  • Fix: rendering unexpected geopoint widget for setvalue actions within an input (enketo-core#896)
  • Fix: ensure evaluation cascade additions receive form context and update arguments (enketo-core#895)
  • Fix: restore build in Dockerfile
  • Fixed a duplicate record name issue in offline-capable views if more than 1 form with the same title exist in the local database, closes (#417)
    Breaking change: once users visit a form in offline-capable mode, the offline form cache IndexedDB schema will be upgraded, which is irreversible.
  • Add max processes config value (#415)
    Breaking change: the previous default was to fork one process for every logical CPU core on the host, the new default is limited to 16 processes by default.
  • Fix: missing media healing offline (#419)
  • Show a less cryptic error message when form loading fails with missing external instances (#421, #400)
  • Allow client csrf cookie name to be configurable (#420)
  • Don’t disable the upload button so much (#410)
  • Add configurable security headers (#402)
  • Fix: depend on transformer and core releases in lockfile (#413)
  • Optionally exclude non-relevant values in calculations (enketo-core#870)
  • Fix map with hidden geo-inputs when “hide-input” class is active (enketo-core#889)
  • Optionally recompute the evaluation cascade asynchronously (enketo-core#881)
  • Improve form initialization performance by calculating repeats only once (enketo-core#887)
  • Fixed mangling of markdown-produced HTML next to top-level text nodes when a mediamap is provided (enketo-transformer#150)
  • Improve test isolation (enketo-core#885)
  • Improve errors for missing external instances in preview mode (#400)
  • Fixed: on mobile devices the dialog heading passed to was ignored and not shown to user (#409)
  • Code style/formatting: Prettier + Airbnb ESLint preset (#396)
  • Fix: escape querySelector variables to avoid error. (enketo-core#871)
  • Fix: improve error messages for missing external instances (enketo-core#873)
  • Fix: don’t randomize unrelated itemsets outside repeat (enketo-core#876)
  • Update datepicker-extended widget to properly unpack data from paste event (enketo-core#878)
  • Code style/formatting: Prettier + Airbnb ESLint preset (enketo-core#866)
  • Fix: unescaped HTML in CHANGELOG (enketo-core#864)
  • Update format-date to return empty string instead of ‘Invalid Date’ (openrosa-xpath-evaluator#155)
  • #391 Add Enketo version (release tag, or git commit hash, or package.json version) to User-Agent header to server-sent requests