XLSForm conversion issue: "pyxform odk validate dependency: java not found"

1. What is the problem? Be very detailed.

I suddenly started having an error message mentioning that "The XLSForm could not be converted: pyxform odk validate dependency: java not found" when trying to upload a new XLS form definition on ODK Central. I had uploaded a last version of my form maybe 10 minutes earlier without any problem.

2. What app or server are you using and on what device and operating system? Include version numbers.

ODK Central

3. What you have you tried to fix the problem?

Not sure where to begin.
I logged out and reconnected to ODK Central.
I possibly would like to check the services running on my server, but I am not very sure what is the correct instruction for this. Should I focus on Java? JavaRosa?

4. What steps can we take to reproduce the problem?

The problem seems very reproducible whatever the XLS form and the project.
I even tried to upload a form definition that has already been published on Central and XLS forms shared on the ODK forum, and I get exactly the same error message...

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.
image

I rebuilt my ODK Central server, it seems it solves the problem and I can upload the XLS forms again without any problem.
This however does not explain me what went wrong.

Sorry you experienced this, @Thalie! Did you add a particularly large form at some point? Or alternately does your server have a lot of different forms that were uploaded as XLSForms? It looks like the service that converts XLSForms ran out of memory. We've seen this same error happen under those conditions on the public XLSForm conversion site.

We'll work on an automated way to recover from it. In the mean time, if you or anyone else runs into that, could you please try docker-compose restart pyxform? This will restart just the XLSForm conversion service and it should hopefully get you back up and running.

1 Like

No worries @LN, so far things had run so smoothly with Central that I was almost surprised to finally encounter a real issue, and thanks a lot for the explanation and way forward. My knowledge of servers and Docker is quite limited, but I will try to learn little by little. I will try docker-compose restart pyxform as you suggest if I encounter the same error message again.

I am hosting my ODK Central server on a DigitalOcean droplet with 2GB memory. I have currently 5 projects in development / test with 1 to 8 forms in each project, and I have been intensively using the Upload new definition function to upload XLSForms. These projects will eventually be deployed on local ODK Central instances, once available. I am not sure of what is considered a "large" form: the XLSForms I am working with are multilingual and the largest ones have ~200-350 rows in the survey tab, and ~400-500 rows in the choices tab.

2 Likes

I encountered the same issue today again and I was indeed able to restart the service using docker-compose restart pyxform (I will also increase the RAM memory on my server). Thanks!

2 Likes

@Thalie Glad the restarts are working. I've also added a change to the pyxform service that should make this problem a little less likely. We'll add that change to the next Central update.

1 Like

A post was merged into an existing topic: Problem converting XLSForm Online to xml