DHIS2 Android Capture v30 brings several new features and improvements. However, there are a few critical issues that need to be addressed to ensure a seamless user experience.
One notable problem arises when updating attributes of a tracked entity that have already been synced. Specifically, attributes with calculated values dependent on updated fields trigger sync errors. For instance, if a client’s demographic data includes an attribute like “Age” calculated from the “DOB” attribute, any updates or corrections to the DOB cause sync errors due to the mismatch between the new calculated value and the previously synced value. This issue also extends to other calculated fields, such as “UID”, “Fullname,” derived from a combination of “Firstname,” “Lastname,” and other attributes .
The error message encountered reads: “Generated by Program rule, unable to assign value to attribute. The provided value must be empty or match the calculated value.” This suggests that the app does not handle recalculated values effectively, leading to inconsistencies and sync failures.
It’s important to note that these issues do not occur when using the web API, indicating that the problem is specific to the Android app.
Addressing the sync errors for calculated attributes is crucial for users who rely on accurate and up-to-date data. We hope to see this issue resolved in future updates to enhance the app’s reliability and functionality.
Hi @gmajaha I am sorry about the problems you are experiencing, we are currently looking into this issue. We have been able to replicate it and are pinpointing the origin of the problem.
We were able to replicate the issue and it is certainly not the expected behaviour. We found the problem origin to be from an API request that fails initial sync en versions 2.40 or greater. The values are being updated in the app correctly.
I have contacted the API team and confirmed with them that it is a bug. They transmitted that it will be addressed in the next minor patch.
In our replication of the error we found that an immediate sync right after the first unsuccessful one would sync correctly.
Obviously this is not ideal and not the expected behavior but maybe it could be a workaround until the fix comes out.
Let us know if there is anything else we can help you with!
Thank you for the swift response and for the efforts in replicating and acknowledging the issue. It’s reassuring to know that the problem has been identified and that a fix is anticipated in the next minor patch,
Looking forward to the upcoming update
I would also like to report a few additional concerns we’ve encountered since upgrading to version 2.40 when we are sync data through Android Capture app :
* Sync Errors with Mandatory Data Elements: We are encountering sync errors related to the enforcement of mandatory data elements through program rules. The error message displayed is: “Generated by Program rule (‘program rule name’) - Mandatory DataElement ‘DataElement name’ is not present.”
* Issues with Data Elements in Program Stages: There are similar errors concerning data elements that have been set as compulsory in program stages. The typical error reads: “Mandatory DataElement ‘DataElement name’ is not present.”
These errors occur inconsistently; in some instances, the system functions as expected, while in others, it fails. We have temporarily disabled the rules causing sync errors, but this is not a sustainable solution
Event Reports - Export Issues: Additionally, When downloading CSV files from Event Reports, the columns are not ordered as arranged in the layout; they appear jumbled. This issue forces us to use the Line Listing app as a workaround. However, the workaround is limited, as any changes regarding specific periods or organizational units require adjustments in Events Reports first.
Thanks for the detailed information, these two first issues you mention seem to be due to the same problem and has already been detected by the sdk team, and also pinpointed to an API bug in the new importer. This will also be fixed in the next minor patch in all core versions. You can track the proccess here:
The third issue you mention is web related is that correct? Unfortunately I don’t think I can help much with that, would you mind creating a new topic in the community with the details or a Jira issue?
Again we apologize for the problems you are experiencing when updating DHIS2, the new importer improves on the old one a lot for syncing large amounts of data and connectivity issues but as can be seen still needs to be fine-tuned for some specific configurations and usecases. Which, now that it is being used by more implementations, bugs are being detected and fixed
You can track the next minor patch release for each DHIS2 core version here:
Thank you for the update and commitment to refining the system and addressing the bugs as they arise.
Regarding the third issue with the Event Reports’ CSV export, yes, it is web-related. I will follow your suggestion and create a new topic in the community forum.
Hi @Xavi ,
I am able to find the Jira ticket related to the first “Mandatory DataElement is not present”, but I don’t see a Jira ticket related to the “Generated by Program rule” error. We are experiencing the later. Can you please confirm if that will be fixed?We have this error on 2.40.3 and Androind 2.9.1.
Yes, I can confirm it has already been tested and merged into develop for 39, 40 and 41 and will be available in the next DHIS2 core minor patch release.
Thanks for your help. Do you know a timeline of when the patch with the fix would be released? We are unable to capture data right now, and the team is considering downgrading, which I do not recommend.
Hi Xavier,
Could you please share where it is documented that all you have to do is sync a second time? That definitely does not resolve the issue for us, which makes me concerned the September fix will not address our issue.
Hi @kstankevitz, sorry for the late reply. We have looked into the issue and although we believe it is the same one and will be resolved in the next DHIS2 core release, in our replicated case we can sync the second time but we have detected some different behaviours depending on the server.
In order to ensure that all these issues with the new Tracker importer will be resolved in the next minor patch. We have created this issue to verify and try to find any other problems related to this.