I have an XLSForm (Nutrition Entrepreneurs – Sales Data Collection Tool – Year 2 – TLTN.xlsx) that uses pulldata() to auto-populate fields from a lookup CSV (nsa_list.csv).
It used to work perfectly on both ODK Collect (Android) and Enketo.
After I replaced/updated the CSV file, the form continues to work fine on Enketo, but on ODK Collect the pulldata fields stay blank.
2. Steps to reproduce the issue
-
Upload the XLSForm and
nsa_list.csvto KoBo/ODK server. -
In ODK Collect (Android):
-
Delete any old Blank Form.
-
Get Blank Form again (to refresh media).
-
Open the form and enter a valid
id_keyvalue (e.g.,20473).
-
-
Observe: On Enketo, related fields populate correctly (e.g., NSA name, district).
On ODK Collect, the same fields remain blank.
3. What I have tried to fix the issue
-
Incremented the form version and re-uploaded.
-
Deleted and re-downloaded the blank form and media on Collect.
-
Verified CSV exists on the device at:
Android/data/org.odk.collect.android/files/projects/<project>/forms/<form-id>-media/nsa_list.csv -
Confirmed that the file name matches exactly (
nsa_list.csv, all lowercase,.csvextension). -
Re-saved the CSV as UTF-8 (no BOM).
-
Checked that the lookup key (
id_key) and header names match exactly. -
Turned ON “Automatically download media” in settings.
-
Cleared cache and form data in Collect → Experimental → Reset cache.
-
Tested the same form in Enketo — all values populate as expected.
4. Form and CSV details
-
Example
pulldata()calls in the XLSForm:pulldata('nsa_list', 'NSA_Name', 'id_key', ${id_key}) pulldata('nsa_list', 'District', 'id_key', ${id_key}) pulldata('nsa_list', 'GPS_Latitude', 'id_key', ${id_key}) -
CSV header row:
id_key,NSA_Name,Mobile_Number,District,Upazila,Union,Village,SME_Registration_Year,GPS_Latitude,GPS_Longitude,UUID_code,unique_name,staff_name -
Test entry:
id_key=20473→NSA_Name=Shimu Begum,District=Barishal,Upazila=Babuganj, etc.
5. Expected vs actual
| Platform | Expected (auto-filled fields) | Actual result |
|---|---|---|
| Enketo | All pulldata() values appear correctly | |
| ODK Collect | Fields stay blank |
6. Environment
-
Server: KoBoToolbox (EU server)
-
App: ODK Collect v2025.x.x (latest)
-
Device: Android latest
-
Enketo: Works as expected