I’m investigating some unexpected data related to tasks. To understand the potential impact, I want to verify whether or not this data is being shown to users. The tasks in question are all in a “Ready” status (with start, due, and end dates in the past), but I wasn’t sure if it’s possible that they have been purged or they automatically get removed at some point.
As of CHT v3.9.0 (#6181), tasks are purged from the phone 60 days after the task has been moved into a terminal state (“Cancelled”, “Completed”, or “Failed”). This is done in Sentinel so it relies on the phone syncing the status update to the server, then being marked to be purged, and then syncing back to the phone.
A task in the “Ready” state won’t be purged. However if the due and end dates are in the past then the state should be updated on the phone, which will mean they do get purged eventually.
Got it, thanks. I’ll create an issue to update the doc site with task purging info.
Slightly off topic but to the same end (task visibility), does the task tab display all task documents that are “Ready”, regardless of dueDate / endDate? So if there is some unexpected data (state = Ready, dueDate / endDate in the past), will that task still be displayed to the user?
Stale task documents are refreshed when the user opens the task tab and then all task docs in the Ready state are displayed (as @gareth mentioned above). So the most likely reason for seeing task documents in “state Ready + endDate in the past” is that the user has not opened the task tab since the endDate - or they have not synced.
The client-side approach taken for the task framework means that the server’s data reflects what was happening on the user’s phone at the time of their last sync - so the data may not be fully fresh if the user doen’t engage or doesn’t sync.
Task documents are also refreshed when viewing a contact’s profile (which includes info about their tasks), and on an asynchronous “background thread” after the app has been open for a few minutes. The data upates which occur from these events have not synced to the server for that user.