return bad request instead of server error for identity group cycle detection #15912
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.
Providing
member_group_ids
that contains a cycle for an identity group toidentity/group/name/<name>
will currently result in a 500 response. This should instead be a 400 response stating that a cycle was detected.Reproduction steps:
Create groups:
Specify group IDs for
Group_0
andGroup_1
:Specify group IDs for
Group_2
will fail due to cycle:This PR introduces improved error handling such that an error caused by a cycle detection can be handled more specifically by a request handler. This allows for returning a
logical.ErrorResponse
rather than bubbling up the error to Vault's response handling logic and resulting in a 500 as so: