Unable to edit forms that fail to send

1. What is the problem? Be very detailed.

When sending a form back to the server, the form may fail to send (the form is checked for inconsistencies, data entry errors, etc. on the custom server) .

Previously, if a form failed to send, it would show up in the 'Edit Saved Form' folder, where the user could correct the data entry error.

However, the failed form stays in the 'Send Finalized Form' folder, with no ability to correct the error.
I'm not sure if this is a settings issue or whether this is a feature.

2. What app or server are you using and on what device and operating system? Include version numbers.

ODK Collect v2021.2.4
Android 10

3. What you have you tried to fix the problem?

I've looked at the available settings to change this behaviour, but couldn't find any.

4. What steps can we take to reproduce the problem?

Try to send a form that will cause an error on the server, then try to fix the error in ODK Collect.

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.

This was quite a critical feature.

Which server are you using? If it's a custom one, are you performing data validation on the server and then rejecting invalid submissions?

There was indeed a change made to Collect's behaviour, so that failed submissions are no longer editable. You can see the issue and linked discussion around why here.

1 Like

Yes, that's correct. The data validation is done on the server and throws an Exception if there is an error (with a message sent to the user).

This a quite a major issue as we work in areas with poor signal, meaning the forms may be filled out throughout the day and uploaded when the team get to a better signal area. So, if there are photos, geopoints or barcodes scanned in the form, they cannot go back to the area to take new photos, geopoints or scan barcodes, meaning all of that data in the form will be lost if they cannot edit the failed form.

Is there any plan to bring this back? Or at least provide a setting where users can allow/disallow finalised form editing?

Not that I know of. The problem is that Collect doesn't have any expectation that servers will carry out validation on the forms - it only expects errors around transmission of the form itself. Support for a feature like that would probably require changes to the Open Rosa spec.

Is it possible to move the validation you're performing into the forms themselves?