@@ -50,6 +50,9 @@ public async ValueTask<bool> TryHandleAsync(HttpContext httpContext,
5050 case GridifyMapperException gridifyMapperException :
5151 await HandleGridifyExceptionMapperAsync ( httpContext , gridifyMapperException , cancellationToken ) ;
5252 break ;
53+ case BadHttpRequestException badHttpRequestException :
54+ await HandleBadHttpRequestExceptionAsync ( httpContext , badHttpRequestException , cancellationToken ) ;
55+ break ;
5356
5457 case ApiException apiException :
5558 await HandleApiExceptionAsync ( httpContext , apiException , cancellationToken ) ;
@@ -90,6 +93,22 @@ private async Task HandleImportExceptionAsync(HttpContext httpContext,
9093 }
9194 }
9295
96+ private async Task HandleBadHttpRequestExceptionAsync ( HttpContext httpContext ,
97+ BadHttpRequestException badHttpRequestException ,
98+ CancellationToken cancellationToken )
99+ {
100+ if ( badHttpRequestException . InnerException is System . Text . Json . JsonException jsonEx
101+ && jsonEx . Message . ToLower ( ) . Contains ( "missing required properties including" ) )
102+ {
103+ var exception = new BadRequestException ( jsonEx . Message ) ;
104+ await HandleApiExceptionAsync ( httpContext , exception , cancellationToken ) ;
105+ }
106+ else
107+ {
108+ var exception = new BadRequestException ( "Bad request. Possibly malformed JSON" ) ;
109+ await HandleApiExceptionAsync ( httpContext , exception , cancellationToken ) ;
110+ }
111+ }
93112
94113 private async Task HandleGridifyExceptionAsync ( HttpContext httpContext ,
95114 GridifyException gridifyException ,
0 commit comments