@@ -3295,15 +3295,21 @@ def _create_error_response(self, error):
32953295 try :
32963296 body = json .loads (error .body )
32973297 except Exception :
3298- body = {}
3298+ errors = [ApiError (None , "Response is not a valid JSON" )]
3299+ return ErrorResponse (status , errors , headers = error .headers )
3300+
3301+ if not isinstance (body , dict ):
3302+ errors = [ApiError (None , "Response is not an Error object" )]
3303+ return ErrorResponse (status , errors , headers = error .headers )
3304+
32993305 if status in [403 , 429 ]:
33003306 # Parse differently if the error message came from kong
33013307 errors = [ApiError (None , body .get (Responses .message , None ), None )]
33023308 else :
33033309 errors = [ApiError (err .get (Responses .context , None ),
33043310 err .get (Responses .message , None ),
33053311 err .get (Responses .location_context , None ))
3306- for err in body .get (Responses .errors , {} )]
3312+ for err in body .get (Responses .errors , [] )]
33073313 return ErrorResponse (status , errors , headers = error .headers )
33083314
33093315
@@ -3365,3 +3371,4 @@ def _fixup_list_type_params(
33653371 _param_type = type (_value ).__name__ .replace ("'" , '' )
33663372 warnings .warn (f"'{ _param } ' parameter, invalid type: expected List[{ _param_type } ] but received { _param_type } , converting to list. Please revisit code." , SyntaxWarning )
33673373 kwargs [_param ] = [_value ]
3374+
0 commit comments