Because of the way the metaobj form edit helper is set up, it is impossible to tell whether a given save request is successful synchronously. This poses problems for autosave implementations. There are multiple ways that the request can fail in an unrecoverable way. If saves are discarded upon Save or Cancel click, the original and autosave can be lost if the request fails. What is needed is a way to capture the following conditions:
- Successful save
- Save attempt with errors, resulting in redrawn form
- Failed attempt (stack trace, session timeout, other)
Knowing which of these was the result of the save attempt allows behavior of prompting to restore only in the failure case.