@@ -330,24 +330,30 @@ def parse_invoke_connection_response(api_response: requests.Response):
330330
331331 invoke_connection_response .response = json_content
332332 return invoke_connection_response
333- except :
333+ except Exception as e :
334334 raise SkyflowError (SkyflowMessages .Error .RESPONSE_NOT_JSON .value .format (content ), status_code )
335335 except HTTPError :
336- message = SkyflowMessages .Error .API_ERROR .value .format (status_code )
337- if api_response and api_response .content :
338- try :
339- error_response = json .loads (content )
340- if isinstance (error_response .get ('error' ), dict ) and 'message' in error_response ['error' ]:
341- message = error_response ['error' ]['message' ]
342- except json .JSONDecodeError :
343- message = SkyflowMessages .Error .RESPONSE_NOT_JSON .value .format (content )
344-
345- if 'x-request-id' in api_response .headers :
346- message += ' - request id: ' + api_response .headers ['x-request-id' ]
347-
336+ message = SkyflowMessages .Error .API_ERROR .value .format (status_code )
337+ try :
338+ error_response = json .loads (content )
339+ request_id = api_response .headers ['x-request-id' ]
340+ error_from_client = api_response .headers .get ('error-from-client' )
341+
342+ status_code = error_response .get ('error' , {}).get ('http_code' , 500 ) # Default to 500 if not found
343+ http_status = error_response .get ('error' , {}).get ('http_status' )
344+ grpc_code = error_response .get ('error' , {}).get ('grpc_code' )
345+ details = error_response .get ('error' , {}).get ('details' )
346+ message = error_response .get ('error' , {}).get ('message' , "An unknown error occurred." )
347+
348+ if error_from_client is not None :
349+ if details is None : details = []
350+ details .append ({'error_from_client' : error_from_client })
351+
352+ raise SkyflowError (message , status_code , request_id , grpc_code , http_status , details )
353+ except json .JSONDecodeError :
354+ message = SkyflowMessages .Error .RESPONSE_NOT_JSON .value .format (content )
348355 raise SkyflowError (message , status_code )
349356
350-
351357def log_and_reject_error (description , status_code , request_id , http_status = None , grpc_code = None , details = None , logger = None ):
352358 raise SkyflowError (description , status_code , request_id , grpc_code , http_status , details )
353359
0 commit comments