You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TrySaveStateAsync or TryDeleteStateAsync should return false iff the operation was rejected due to a concurrency violation. The design intent of these methods is to treat expected failures (etag mismatch) separately from unexpected failures (network hiccup).
Users should be able to use the true/false return value to distinguish whether state was saved, and only use try/catch if they choose to handle arbitrary exceptions.
Actual Behavior
TrySaveStateAsync swallows allRpcExceptions
TryDeleteStateAsync swallows allExceptions
Steps to Reproduce the Problem
Issue a call to TryDeleteState that's totally invalid (say an invalid key format), or when the network is disconnected. It will be surfaced as a false return value instead of an exception.
The text was updated successfully, but these errors were encountered:
Tagging this as a breaking change (not sure why it was missing). Moving from one valid (but not ideal) to another valid behavior is a breaking change 😆
Expected Behavior
TrySaveStateAsync
orTryDeleteStateAsync
should return false iff the operation was rejected due to a concurrency violation. The design intent of these methods is to treat expected failures (etag mismatch) separately from unexpected failures (network hiccup).Users should be able to use the true/false return value to distinguish whether state was saved, and only use try/catch if they choose to handle arbitrary exceptions.
Actual Behavior
TrySaveStateAsync
swallows allRpcException
sTryDeleteStateAsync
swallows allExceptions
Steps to Reproduce the Problem
Issue a call to
TryDeleteState
that's totally invalid (say an invalid key format), or when the network is disconnected. It will be surfaced as afalse
return value instead of an exception.The text was updated successfully, but these errors were encountered: