first of all big kudos for the great work! Not only for the new app but for everything you are providing through KoboToolbox. It’s really a game changer for our projects.
Regarding the new app (which looks and feels great by the way) I would like to report a bug. At least I think it’s a bug and not expected behaviour:
We are using multiple surveys that are referencing each other or themselves through dynamic data attachments, basically for longitudinal analysis. Everything was working fine and still is when using Enketo.
However, since the update of the app the dynamically linked data is not being updated anymore upon reload of the forms. When I reset forms and data in the settings and then reload all forms from scratch, newly data is updated again correctly. So I do believe that there is a problem with the reloading of forms, where only the forms are reloaded but not the dynamically linked data.
Could you please have a look at it and let me know if this is indeed a bug or if I’m doing something wrong?
Welcome to the community, @Ole! Thank you for bringing this to our attention. Have you tried this with the XLSForm that has been shared in our support article:
Feel free to update so that we could investigate further.
apologies for the delay. I was in the field and didn’t get time to do the test that you requested.
I did it now:
The behaviour is exactly the same as described in my initial post. I.e., the dynamic data attachment (“Round 1 Survey” in the support article) only updates once I clear forms and data in the settings. Just forcing the update/reload of forms under “start new form” does not update the data and it’s not available in “Round 2 Survey”.
@Kal_Lam , I’m really sorry, but it’s not working for me.
Did you test with the KoboCollect App or on Enketo? On Enketo it works fine for me, too.
I did some further testing on my end. E.g., I tried out the different servers (regular + EU) and also cross-tested between Enketo and the KoboCollect App, always with the sample forms from the support article.
Doing so, I found another curiousity:
After submission of a new entry in the Round 1 Survey, if I reload/open the Round 2 Survey form in Enketo once - even without submitting a new entry, afterwards the Round 2 form updates on the KoboCollect App as expected: under “Download form” the Round 2 Survey is checked and marked as “this is an update …”. After downloading it again the new data entry from the Round 1 Survey becomes available.
Is it possible that you did your testing in this order? That would explain why it worked for you.
I.e., to reproduce the error that I am seeing, you would have to submit a new Round 1 entry and afterwards try to refresh the Round 2 form strictly in the KoboCollect App without any inbetween tests in Enketo.
The strange cross-effect between Enketo and KoboCollect App described above seems to point to a problem rather on the server side. Maybe a flag in the meta data of the child form that is not set correctly? Sorry for the inconvenience!
I have a similar problem, that the data doesn’t update using Kobo Collect on Android.
I did a test like you suggest, I submitted new data with the parent form, checked that it was received, waited 5 minutes and then just opened the child form in Enketo, without submitting any data there.
It gives the message “A new version of this form has been downloaded. Refresh this page to load the updated version.”
I then opened Kobo Collect and went to download forms, and it was showing the child form as having an update. I downloaded and the new submitted data was there.
thanks for sharing! I was starting to wonder if I’m the only one experiencing this issue and if it might be rather related to my specific system configuration. But after checking your original post, it does indeed seem to be the same issue.
By the way:
By now I did a lot of testing on this and the problem is definitely not related to the response time of the server. In most cases the new data becomes available within a minute or so. The 5 minutes is kind of the worst case.
The plan also is not the reason. When the issue first popped up I was on the free plan. Now I’m on the paid plan and it’s still there.
From what I’m seeing the problem is that for some reason the KoboCollect App does not “see” that the parent form data that is dynamically linked to the child form has been updated. Therefore it does not reload it, only when you force the reload through resetting all forms.
@Kal_Lam, could you please look into it again? Thanks!
OK, good to know it is not the plan and that the delay is 5min or less.
I’ll check if I can use Enketo as a workaround, but I’d prefer using Kobo Collect.
Hi @Ole
Were you able to resolve this for Collect? I just did a test and still it will not update for Collect unless i open Enketo first. @Kal_Lam can you please check this issue?
That’s too bad. I managed to get something working using ODK and the Entities feature, but there are some features in Kobo server that I prefer than using ODK Central, but if this don’t get resolved I’ll just deal with the issues on Central.
Yeah, but what to do. Indeed, the ODK Entities feature looks great, even more powerful and flexible than the Kobo dynamic data attachments. Clearly, Kobo dynamic data attachments is built on ODK Entities but does not port all the functions (e.g. updating existing entries).
We opted for Kobo over ODK because of pricing. But it looks like there are some points to be made about going with the original …
So, we’ll have to seriously consider switching to ODK, although it will be a headache to port our running projects and re-train the field staff on a different app.
What are those features in Kobo that you prefer over ODK?
It is easier to start testing things with Kobo than with ODK, unless you setup ODK Central yourself. Personally I don’t care for visual form builder but it is also something that makes it easier to start with Kobo. Basic reporting in Kobo is something that I use that is not available anymore in Central. Basically with Kobo you can start and hand a project over or invite someone that can use it easier in my limited experience with both.
I think the difference between dynamic data and entities is that dynamic data works with the submissions and that you can link one or more forms, while the entities creates a new dataset and currently you can only link to one entity, but linking to more entities is on the roadmap.
I am thinking about opening a bug report on github, I think it should do it for the kobocat repo. I’ll look into that later on.
@Kal_Lam
Are you testing on the same servers as us only using KoboCollect? I’m using kf.kobotoolbox.org
and the Round 1 and Round 2 xlsforms from the help article.
To see the same error as we do, don’t use Enketo.
Submit some data using Round 1 in KoboCollect, then wait for some time. Even if you refresh after 5, 15 or 20 minutes, in my case I didn’t get the updated data for Round 2.
After all the time is passed, if you then open Round 2 in Enketo, it will say there is an update to the form, then you will update the form in Enketo without submitting any new data. Then you go back to KoboCollect and you will immediately see there is an update for Round 2 in KoboCollect.
So again, if you only use KoboCollect, it doesn’t matter if you use manual or match server, you will not get the update in an acceptable time.
I know this is an old thread, but just wanted to confirm that I am still seeing this behaviour as flagged by @nmambre and @Ole . I am sharing my experience in case anyone else is searching for a solution and stumbles across this thread. The marked ‘solution’ doesn’t work to solve this problem, and I’ve suggested that perhaps the ‘solution’ flag be removed from that post?
In my Collect app, it seemed to be working for the first 9 submissions (e.g., the dynamic data was getting periodically updated in the Collect app). Then it stopped updating.
I tried:
deleting all blank forms from Collect, and then re-downloading the blank form. That didn’t work to get the latest data.
redeploying an update to the form itself and then trying to re-download the updated form. The form was updated in the Collect app, but it still didn’t bring in the updated data from latest submissions.
clicking off ‘data sharing enabled’ in Settings and clicking it back on again and then redeploying. That didn’t work.
Setting the app to ‘Exactly match server’ as suggested by @Kal_Lam, but that also didn’t work.
clicking off ‘data sharing enabled’ in Settings, then deleting all the connected projects. then redeploying. Then turning data sharing on again, then redeploying, then reconnecting the projects, then redeploying. Then deleting the blank forms from Collect app, and re-downloading - this is what worked.
I am also experiencing an issue where the form works fine in Collect, but shows an error when opening in Enketo (which only appeared after several submissions had been made). This may be due to the complexity of my form. But this problem doesn’t allow me to open the form in Enketo and allow it to update, so I had to take the longer workaround of disabling and then enabling data sharing again.