fix(parser): revert a regression in v3 when raising ValidationError #5259
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.
Issue number: #5252
Summary
Changes
This PR addresses an issue where we were incorrectly catching and re-raising
ValidationError
asInvalidModelTypeError
. This regression was introduced in v3.0.0More context:
In v2 we raise ValidationError directly from Pydantic when we can't validate data against model, but in v3 we were catching
ValidationError
and re-raising it asInvalidModelTypeError
. However,ValidationError
is a data validation error that many of our customers use to catch exceptions when data is incorrect. By re-raising it as a different error type, we were breaking this expected behavior.Potential impact:
Any customer that updated to v3 and is relying on
InvalidModelTypeError
for what were originallyValidationError
will need to be updated the code again.Solution:
ValidationError
and re-raises it asInvalidModelTypeError
.ValidationError
will now be raised as is, preserving the original error type and message.User experience
Before this PR
After this PR
Customers can catch
ValidationError
as expected.{'status_code': 400, 'message': 'Invalid order'}
Checklist
If your change doesn't seem to apply, please leave them unchecked.
Is this a breaking change?
RFC issue number:
Checklist:
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.