When CommCare Android users are storing incomplete forms on their devices and update to a newer version of the application, a situation can arise where an older incomplete form on the Android device is no longer compatible with the updated version of the form in the application.
For example, the old version of the form might have a multiple choice question with choices: "Boston", "New York", and "Washington". The mobile user opens this form and selects "Washington" as the answer, but then exits the form and saves it as incomplete.
Later, a new version of the application is deployed. The option "Washington" is removed and changed to "Philadelphia". The mobile user's device then updates to this new version.
Now when the mobile user tries to open the incomplete form, CommCare will attempt to load "Washington" as the answer, however, "Washington" is no longer a valid answer to the question. This causes the device to crash.
Warning: Read these instructions carefully; this is a very advanced procedure
This procedure is complex and if not carried out completely can cause complications. DO NOT do this if you have remote update enabled on many phones which are being used in the field as it will cause all of the phones to revert to an earlier version of the application
The solution in this situation is:
- Find an older version of the application in the release manager which is compatible with the older form
- "Revert" to that and make a new version. Now the latest version will be compatible with the older form
- Temporarily "star" that version
- On the device, click "Update CommCare" in the settings menu. This should update the device to the older version of your application.
- Open and complete the incomplete forms on the device and submit them to the server
- Once all the incompatible incomplete forms are submitted, revert to the version that should be the latest currently deployed version.
- Re-star the newest build and update to this one again.
Note that this will cause all of your phones with remote update enabled to update.
Users should be encouraged not to keep forms Incomplete for long periods of time. If they need to return to the form to complete it at a later date, you should add a separate form for the follow-up visit.