Updating an existing form in Collect is not seamless


It's more of an observation I want to share. When I upload an updated version of the form on aggregate, in ODK Collect GET NEW FORM dialogue, it is marked as an updated version of an already-downloaded form. Fair! When I download this updated version, it overwrites the existing form on Collect. Still OK. However, this auto-updated form does NOT work properly when I try to fill it and SAVE AS FINALIZED. Multiple times, I have seen ODK collect giving some Java error. The only way it works is when I delete all saved instances of old form manually, and then download a fresh copy of the new form. This process is not what is expected because ODK Collect should handle this by itself without manual intervention.

Anyone else having this observation?


Hi @Saad

could you tell us more about that error? Maybe you have a screenshot?


Please find attached the screenshots. The flow is:

  1. I created an update to an existing form, and uploaded the new form on the aggregate.
  2. Collect marked it to be an update, and I let ODK manage the update of the form, by downloading the new form via clicking on it (I did not remove the old form, because this is supposedly to be done by ODK, right?)
  3. In FILL BLANK FORM, I see only one form (not two), which is the latest/updated one.
  4. I filled it completely, marked it as finalized, and tried to send it. But it gave me error and did not finalize it (only saved it). The error snapshot is also attached.
  5. Even in EDIT FORMS, it does not let me resume the saved form, saying that there is version conflict, so make a clean install. Snapshot attached.

Please note: I deleted the existing instance of same form from the phone, and then downloaded a fresh copy from server, and it works fine then.

The whole process of the update (I think) should be managing auto-delete of old form and installation of new form without user manual intervention.


The intent is for update to be a seamless process as long as the new form version has a different version specified in the form definition. From the error you are getting, it looks like you have used the same version label but changed the form. This makes it impossible for Collect to know which of the form definitions to link submissions to. Could you please try changing the version when you update the form?

It's great that you're using a date for the version. I recommend adding two more digits to represent revisions during a day. For example, you might have 2019112901 and 2019112902.