[Bug]: Not throwing a ValidationApiException
goforebroke opened this issue ยท 2 comments
Describe the bug ๐
A bug happened!
I have an API that returns a problem details when supplied inputs fail validation
![refit 1](https://private-user-images.githubusercontent.com/24305753/332598483-e35938d2-d071-4a08-8aa7-7460355b7058.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3NDQ4NDksIm5iZiI6MTczMjc0NDU0OSwicGF0aCI6Ii8yNDMwNTc1My8zMzI1OTg0ODMtZTM1OTM4ZDItZDA3MS00YTA4LThhYTctNzQ2MDM1NWI3MDU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDIxNTU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNhNTlhMzQ2MzA0YWZjMDFjZmI3YTBmMDg0Y2I3Yzg2OTdhMjA1ZjdhZDVlYmZlMzRlZGQ2N2U0MjcxMzA3NWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xAMJMuP4tMuw2FN22d9hjTtiaToW8O3gMis66Q9K_AU)
![refit 2](https://private-user-images.githubusercontent.com/24305753/332598514-ded1c9c4-d28f-4219-aa3b-5cb0e23d2d33.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3NDQ4NDksIm5iZiI6MTczMjc0NDU0OSwicGF0aCI6Ii8yNDMwNTc1My8zMzI1OTg1MTQtZGVkMWM5YzQtZDI4Zi00MjE5LWFhM2ItNWNiMGUyM2QyZDMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDIxNTU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MmYyYWU4MDkwNmY1ZTA0ZWVmN2JhM2QxNTdiZTNjYTZiYzI1NDkwNzMzMDgwMTlmMGEzOWUxZWU4MjdlZDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.25uHN5XllWh7L81gwX4VDiK4ImGVCnhHphYw13O2laU)
I have a razor page application using the refit library to make api calls.
![refit 5](https://private-user-images.githubusercontent.com/24305753/332598845-019c3b23-ab8d-4d8c-96fd-e469285532c6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3NDQ4NDksIm5iZiI6MTczMjc0NDU0OSwicGF0aCI6Ii8yNDMwNTc1My8zMzI1OTg4NDUtMDE5YzNiMjMtYWI4ZC00ZDhjLTk2ZmQtZTQ2OTI4NTUzMmM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDIxNTU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM3ZTNhODFhNDYxMWNhM2JhODhjOTAxNzRjZDZiZjU3MWVlOWI5OGNjMzRlZTZhNjkwNjlhOWNiMmU2ZTg2NTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.V_Y5zVq9DVJOp2DPN3bnkaX9UkPYh-80yPul-fH6BII)
When the application posts data with invalid inputs an ApiException is caught, but not a ValidationApiException. If the ApiException has a content type "application/problem+json", a ValidationApiException should be thrown?
![refit 4](https://private-user-images.githubusercontent.com/24305753/332600006-f44eab7b-0580-405f-a4aa-a51a1f5102cf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3NDQ4NDksIm5iZiI6MTczMjc0NDU0OSwicGF0aCI6Ii8yNDMwNTc1My8zMzI2MDAwMDYtZjQ0ZWFiN2ItMDU4MC00MDVmLWE0YWEtYTUxYTFmNTEwMmNmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDIxNTU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3YTg4MTdmNzdkMWMwN2ZmMGU2Yjk4NTA3YjQ4ZDBhNmE5MWJkOTM2OWUyYmJkNmMyNGE2NWVmMjIyMGZiNTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.b04ev5jaidVb0Nw1HGDJcSXGTloBkOknGlVMo93eQ0c)
![refit 3](https://private-user-images.githubusercontent.com/24305753/332600270-37d3979a-666e-4630-8c30-fd8bc32db309.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3NDQ4NDksIm5iZiI6MTczMjc0NDU0OSwicGF0aCI6Ii8yNDMwNTc1My8zMzI2MDAyNzAtMzdkMzk3OWEtNjY2ZS00NjMwLThjMzAtZmQ4YmMzMmRiMzA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDIxNTU0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJlZjY2NzY4OGY2NGFmNjE2ZmI0MmQxMThiOTBlMjBjYTljYmU2NjdlN2YwYThmODcxOWQxNWFjNDIzZjE1NTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MlDl4q_x8K0Y__XgTHSg7j0atnoqQAqzayrv3sQn0Kc)
Step to reproduce
- Go to '...'
- Click on '....'
- Scroll down to '....'
- See error
Reproduction repository
https://github.com/reactiveui/refit
Expected behavior
This should happen...
A ValidationException should be thrown with a content type application/problem+json
Screenshots ๐ผ๏ธ
No response
IDE
Visual Studio 2022
Operating system
Windows
Version
11
Device
No response
Refit Version
Refit.HttpClientFactory 7.0.0
Additional information โน๏ธ
No response
Bumping this, as I've just hit the same issue.
Hey, could you share a minimal reproduction of this issue? I haven't been able to reproduce in a modern ASP project.
I'm guessing your issue is related to this line in ApiException
, I'm guessing the returned header in your example is being recognized by Refit.
if (
response
.Content.Headers?.ContentType
?.MediaType
?.Equals("application/problem+json") ?? false
)
{
exception = ValidationApiException.Create(exception);
}