Fix WebUI Admin Action infinite retry with no MFA devices #51134
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.
#49679 and subsequently #50570 introduced a change where
getMfaChallengeResponse
could returnnull | undefined
when the user had no MFA challenges (no devices or not required).fetchJsonWithMfaAuthnRetry
expectsgetMfaChallengeResponse
to return{}
in these cases, and will retry with MFA until it gets either an empty or non-empty object.This PR fixes the issue by:
fetchJsonWithMfaAuthnRetry
which could result in an infinite loop. It's no longer recursive so it will only retry once even if null or undefined is received.getMfaChallengeResponse
return{}
so we can properly determine at any point whether an mfa response is undefined or an empty response resulting from a no-op challenge attempt (no devices or not required).Closes #51105