Loading Error when accessing form in ODK Central (request failed)

Hi everyone,

I'm having trouble loading a form in ODK Central — I get the following error message:

> Loading Error

Error occurred during the loading of this form. We do not recommend you use this form for data entry until this is resolved.

Request to https://odk.server.org/v1/projects/12/formList?formID=survey_apinod&st=... failed.

The popup suggests contacting support@getodk.org, but I’d like to check here first in case anyone has experienced this before.

Context:

ODK Central version: (please specify if known)

Deployed via Docker

When checking the Docker logs, there’s nothing showing up — no errors in service or nginx logs.

Other forms in the same project load fine.

The form was uploaded successfully, but fails when trying to open it in Enketo or preview it.

What I’ve tried:

Restarted all Docker containers (docker compose down && docker compose up -d)

Checked service logs with docker compose logs service

Verified network connectivity and form ID

No apparent errors in the Central logs

Does anyone know what could cause this "request failed" error when loading a specific form?

Could it be related to Enketo, form cache, or a malformed XML?

Thanks in advance for any help.

Hi @sowe1

Please share the version of Central that you are running. Can you try generating a new Public Access link and see if that works.

Hi @shaban1 ,
Thats right
versions:
e4221ebeb41cd6ccb0cedad0461e5b603c207339 (v2024.3.2-1-ge4221eb)
8b1de6512faa7a60c05764312caec01f5c138c42 client (v2024.3.2)
7574030f7ea8750f3837950001a5efcdeba45b92 server (v2024.3.1)

I've seen this error before and it was a not a Central issue, but a form issue - are your other forms working in Enketo? Does this form load in Collect?

The lack of an additional error message doesn't help you find the issue, but perhaps you can start breaking your form into pieces and uploading chunks of it to try to locate the cause then a solution to it can be found.

1 Like

Hi @ahblake ,
If it's something that seems strange to me, that is, that error appears, but there's nothing in any log from any other service.
I created a new one with the same form and it works fine. I think something strange happened in the form at some point.
But your tip is a great idea.

Thanks

hi @ahblake

Thanks for your advice, but it doesn't work. In fact, I've noticed that they remain in draft status even when I publish them via API or interface; they don't change to another status.
Sample

curl -u "<REDACTED_USER>:<REDACTED_PASS>"
-X POST
"https://<REDACTED_HOST>/v1/projects/33/forms/Rahabilitation/draft/publish"

Respuesta:
{"message":"You tried to publish the form 'Rahabilitation' with version '19102025', but a published form has already existed in this project with those identifiers.","code":409.6,"details":{"xmlFormId":"Rahabilitation","version":"19102025"}}

curl -u "<REDACTED_USER>:<REDACTED_PASS>"
-X POST
"https://<REDACTED_HOST>/v1/projects/33/forms/Rahabilitation/draft/publish?version=$(date +%Y%m%d%H%M%S)"

Respuesta:
{"success":true}

curl -u "<REDACTED_USER>:<REDACTED_PASS>"
-X GET
"https://<REDACTED_HOST>/v1/projects/33/forms/Rahabilitation"

Respuesta:
{"projectId":33,"xmlFormId":"Rahabilitation","state":"open","enketoId":"hkkMtkHQHj8G1xBV9WY9YkfsdtYXyXj","enketoOnceId":"5d9eebe984ccf673ea1e00d92c7e5628c2f75f19964697f2356453d286dd88e4","createdAt":"2025-07-20T09:59:48.172Z","updatedAt":"2025-10-19T14:54:19.725Z","version":"20251019145419","hash":"ef047cd507fc57bb55bd331c0ba66420","sha":"2c0d4769e164271d669bcc1df0e46d5ace227cf2","sha256":"16b676cabf7b4c4a504d2f667c7f03e2c9333352f5015cb7e5d2f931ca0125d2","draftToken":null,"publishedAt":"2025-10-19T14:54:19.722Z","name":"التقرير الشهري/ دائرة التأهيل (Rehabilitation Department)"}

Resultado final:
El formulario Rahabilitation está publicado correctamente.
Versión: 20251019145419
Estado: open (acepta envíos)
draftToken: null (no hay borrador pendiente)
Fecha de publicación: 2025-10-19T14:54:19.722Z

versions:
e4221ebeb41cd6ccb0cedad0461e5b603c207339 (v2024.3.2-1-ge4221eb)
 8b1de6512faa7a60c05764312caec01f5c138c42 client (v2024.3.2)
 7574030f7ea8750f3837950001a5efcdeba45b92 server (v2024.3.1)

You have to change the version when publishing. Usually incrementing an id, or updating a timestamp

Yep i did , the same error … i don’t know whay …
Thanks

I'm having some trouble and can't seem to find a solution. I'm trying to publish a form, but it always remains in "Draft" status and never moves to "Production." When I try to access the public link I generated (e.g., "/test"), I get an error. I've tried generating multiple links, but the issue persists.

Could someone please let me know if I'm doing something wrong or missing a step? @yanokwa maybe you have a idea ?

versions:
e4221ebeb41cd6ccb0cedad0461e5b603c207339 (v2024.3.2-1-ge4221eb)
8b1de6512faa7a60c05764312caec01f5c138c42 client (v2024.3.2)
7574030f7ea8750f3837950001a5efcdeba45b92 server (v2024.3.1)

Hi @sowe1,

Is it possible for you to share a complete video including URLs privately via Direct Message?

I see you are having two separate issues:

  • Forms remain in draft even when published using API, I would like to see that.
  • One particular Form is not opening in Enketo, but when you upload the same Form in a separate project, it works correctly, right? For the problematic Form, you are getting two different errors:
    • Request to https://domain/test/..... failed.
    • Request to https://domain/v1/projects/12/formList failed.

What is the difference in the step/procedure to produce these two different errors? Can you please see the browser console and network tab for the details of these errors.

Sure !!

Yes, we run the curl:

curl -u user:password
-X GET "https://host/v1/projects/30/forms"

[
  {
    "projectId": 30,
    "xmlFormId": "XXXXXXXX",
    "state": "open",
    "enketoId": "ErWdc4sHFfjg0C06JFBy0x22palxvTL",
    "publishedAt": "2025-11-04T13:37:36.404Z",
    "draftToken": null
  },
  {
    "projectId": 30,
    "xmlFormId": "XXXXXXX",
    "state": "open",
    "enketoId": "fP7igdYLjI1hRJas8Gf9qDIs3auYsAM",
    "publishedAt": "2025-04-17T11:43:01.583Z",
    "draftToken": null
  }
]

I understand that this form should be published and not in draft form.

Problem is fixed by manually updating the data in Enketo's redis database.

Anyone stumbling upon this problem in future should check updates on https://github.com/getodk/central/issues/1380.