fix(persisted): Add dev warning for persisted-miss results for an already persisted-miss errored operation (repeated retries) #3442
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #3441
Summary
When a
persistedExchange()
sees a persisted-miss error, it will retry the operation while disabling persisted serialization using themiss: true
flag. However, we had no guard to check whethermiss: true
was already set.This meant that if an API/exchange erroneously keeps replying with persisted-miss errors then
persistedExchange()
wouldn't stop retrying the operation.When an
ssrExchange()
on the server-side caches this error, this is made worse, sincessrExchange
's results are synchronous and this hence causes an infinite loop.A development-time warning has been added that explicitly tells people that this is what's going on and how to resolve it.
Set of changes