-
Bug
-
Resolution: Fixed
-
Major
-
4.1.5, 4.2.2, 4.3
We just spent a few hour debugging an issue where a pre-fetch request which includes a missing templatle will cause all subsequent template requests in the same request to be rejected, whether or not they were actually related to the original one or not.
This happens because of an over-zealous rule which basically says "if there is an error, fail all remaining requests in the call".
That exists for the purposes of write safety. Imagine you have three requests in the same call:
- backup my thing
- reset it to its initial state
- restore from the backup
You would expec this to always reset it and reapply the backuip.
But what if the backup fails?
If we just continued with subsequent requests in the call, we'd fail on step 1, reset to initial state, and have nothing to restore. DATA LOSS. So to avoid that we reject everything in the same request.
Now this really doesn't and shouldn't apply to nologin requests. They:
- come through a different endpoint
- do not allow any write of any kind (because there is no user logged in for them)
These should be entirely safe because they are unable to make changes anyway.
So I believe we can modify the service.php endpoint to not reject following calls in the case of a prior error.