We have recently upgraded our DHIS2 instance to version 18.104.22.168. As a result of this update, there have been some negative impacts to our Tracker program. Specifically, I’ve observed that I can no longer perform data entry using the Capture app; instead, it’s only possible through the Tracker Capture app.
When attempting to save the entered data in the Capture app, I encountered an error message stating, ‘Error saving Enrollment.’ as seen in the image below.
Thank you for your attention to this matter.
Thank you for your post, and sorry to hear that an issue came up. The “Error saving enrollment” is a generic error and could be because of many reasons, so would it be possible to share more info about this issue from the logs?
A good start would be with the errors in the Network log, please open the DevTools (F12) and then click on the Network tab. After that, please select the red text in the Network tab and get the response as well as request errors (you’re free to hide the domain name).
For perspective, the mandatory fields in were filled in for the TEI profile.
I think I had that issue, do you use the “old” or “new” capture app ?
I noticed that the tei attributes were not in the correct place (on enrollments if I remember vs on the tei)
I switched back to the old capture web app and it worked.
if you open the developer tools before “saving” normally you can get the payload that was posted to the api/server in the network view.
Can you provide the “Response” log when you click on save button?
It’s the json import report showing error and that 3 attributes were ignored.
I’ve redone data entry to take a screenshot to show.
Thank you @lillian1n2 for posting the responses. It seems that there are missing values for the assigned mandatory Tracked Entity Type Attributes in your program. Can you check that there are values filled in all mandatory attributes and in the same format as configured.
I would share also the “Payload” tab with what has been sent to the server.
I manage to reproduce a similar problem on my program but on a different version
- dhis2 : 22.214.171.124
- capture: Version 100.35.0 installed
it works well on the “legacy” tracker capture app.
you see that the attributes are in the “first enrollment” and not the on the tracked entity instance level.
note that it’s calling this api : /api/39/tracker?async=false
so I think it’s the “newer” api.
Yes, they are filled. That is why I posted the capture app and the web browser response side by side.
When filling the same values on Tracker Capture, it works.
Yes, I have also seen the tracker?async=false error. It throws a HTTP 409 error and then when you check on the browser side, the error is E1090 from import summary error codes.
@hanin.saadah does the new api expect the attributes on the enrollments ? or like the old one on trackedEntityInstance ?
my theory is that the capture app send an “invalid” payloads by putting the attributes on the wrong object.
@Gassim can you help us here ?
The problem can be reproduced on play by adding a mandatory attribute to “Person” and then go to register a new person for instance in Child Programme.
Did we make any headway on this, community members?
Thank you @lillian1n2 for bumping this. I realize there is not bug issue created about this, and I was able to reproduce the issue following @superskip 's post above.
Thank you @here for contributing to this, and here’s the bug issue: [DHIS2-15967] - Jira
Please watch/vote/comment to receive notifications about any updates. Thanks!
The problem can now be solved by installing the latest version of Capture from App management.
I should mention there still remains an issue during program configuration to be aware of: If a TET attribute is mandatory one must remember to mark the same attribute as mandatory in the program as well, otherwise the field will not be treated as mandatory in Capture. There are plans to improve this, though not directly through the Capture app.