Issue with pulldata > Update of form you have

Hello all,

I'm using ODK Collect (version 1.29.5) together with Kobotoolbox. I have a form with a pulldata csv attached (which works when filling in a form).

However, when I do a "Get Blank Form", I always have the message "This is an update to a form you have" for this particular form. Even when no changes were made.
When I do a "get selected" it gives me a message that the form was successfully downloaded. When I go back to "Get Blank Form", it still shows "This is an update ..."

I have heard from some enumerators that the form sometimes has disappeared from the "Fill Blank Form". Then a "Get Blank Form" needs to be done to make it appear again.

When I have a form where I do not use the pulldata functionality, I don't have this issue.

Again, when I fill in the form, the pulldata functionality works as expected.

I have downgraded ODK Collect to v1.28.4 (using the old storage structure on the phone: the odk-folder in root), unfortunately the issue still persists.

Thanks for all the support in advance!
Henk

Hi @Henk_Hoff
is the issue only about the message that should not be visible and you can confirm that you have the newest form version downloaded or maybe you are trying to download the newest version but it doesn't work?

Hi @Grzesiek2010 . The issue is that apparently the app thinks there is a new version; which is not the case. We had on the enumerator phones the "automatic download" enabled, which caused some problems in the background. We've now disabled that function. But that is more a work-around.
To test the situation I've done the following:

  • deploy form
  • upload formfile (for the pulldata)
  • deploy the form again
  • Download form on the ODK collect app with Get Blank Form
  • Test if the form works (including the pulldata feature) > works
  • Go to Get Blank Form >> "This is an update to the form you have"

So, the download of the form worked. I did not change the form since then; but I do get the update message.

Hope this clarifies. Thanks!

Could you maybe give me access to the server in private so that I can debug the project and find out what's wrong? That would be the easiest way.

Hi @Grzesiek2010 . Sorry for not responding sooner, was occupied with other work.... I have installed the same form on two different Kobo Toolbox instances, with the same issue. How can I best DM you regarding access to the project?

@Grzesiek2010 you've probably already thought of this but just in case, I'm guessing that the attachment is being served as a zip file. If that's the case, there's probably not much we can do.

Small update: I've downgraded to ODK Collect version 1.27.3. In that version I don't have this issue. When I upgrade to 1.28.0 (and up) the issue appears...

1 Like

I thought about it but then it should behave in the same way in 1.27.3...

@Henk_Hoff
If you want you can share the credentials in private message or via email grzesiek2010@gmail.com

1 Like

Seems like there is something wrong with kobo because form version is not present in the list of forms. The result is like:

<xform>
      <formID>ah35oLbJmTDXusDZUyeuGN</formID>
      <name>TEST pulldata</name>
      <majorMinorVersion />
      <version />
      <hash>md5:39996abd1e3eb682049f1e331f2bbdfb</hash>
      <descriptionText>TEST pulldata</descriptionText>

but in fact your form has the version.

As a result if you open the list of forms in Collect:

  1. We download the list of available forms from the server.
  2. We take the first form and check if it is already downloaded (in your case it is).
  3. We check the xml form itself (comparing md5 hasesh) to check if something changed and display a message if needed (in this case it is not needed).
  4. We check media files because maybe one of them is updated. To do that we try to find media files on the device that were saved for a form with id ah35oLbJmTDXusDZUyeuGN and version null (because it is not specified as I said above)
  5. We can't find any media files for that pair of values because as I said above your form has its version and media files are on the device but for id ah35oLbJmTDXusDZUyeuGN and version vi28muQVoL2YRpBmr5wP4J (not for null). For ODK Collect it means there are no media files already downloaded so we display a message that it is an updated version of the form.

Thank you for the clear explanation.
Let me try to repeat to check if I understood it correctly:
The check for a new version of a form is done by checking the value in the element.
The check for a new version of the media files is done by checking the value in the element.
Since the version-element is left empty, there will always be a difference in the version; and therefore Collect assumes this is a newer version.

Am I correct in assuming the version check on media files has been added since version 1.28 of the Collect app?

I will contact the Kobo dev team about this hope they are able to fix this on their end....

Thanks again!

Yes I think you understand correctly.
The reason why it wasn't a problem in 1.27 is that probably in the past we would ignore the version number and compare forms using only form id what was bad because you can have multiple (downloaded) forms with the same id but different versions. But in your case where you have just one form it worked.

Please contact Kobo and let us know if they fix the issue.

1 Like

FYI the issue the kobo team is working on.

1 Like