@@ -20,13 +20,16 @@ def process_csv_to_fhir(incoming_message_body: dict) -> None:
2020 """
2121 encoder = "utf-8" # default encoding
2222 try :
23- interim_message_body = file_level_validation (incoming_message_body = incoming_message_body , encoder = encoder )
23+ # and encoder to the incoming message body
24+ incoming_message_body ["encoder" ] = encoder
25+ interim_message_body = file_level_validation (incoming_message_body = incoming_message_body )
2426 except InvalidEncoding as error :
2527 logger .warning ("Invalid Encoding detected in process_csv_to_fhir: %s" , error )
2628 # retry with cp1252 encoding
2729 encoder = "cp1252"
2830 try :
29- interim_message_body = file_level_validation (incoming_message_body = incoming_message_body , encoder = encoder )
31+ incoming_message_body ["encoder" ] = encoder
32+ interim_message_body = file_level_validation (incoming_message_body = incoming_message_body )
3033 except Exception as error :
3134 logger .error (f"Error in file_level_validation with { encoder } encoding: %s" , error )
3235 return 0
@@ -102,8 +105,12 @@ def process_rows(file_id, vaccine, supplier, file_key, allowed_operations, creat
102105 total_rows_processed_count += 1
103106 logger .info ("Total rows processed: %s" , total_rows_processed_count )
104107 except Exception as error : # pylint: disable=broad-exception-caught
108+ # if error reason is 'invalid continuation byte', then it's a decode error
105109 logger .error ("Error processing row %s: %s" , row_count , error )
106- return total_rows_processed_count , error
110+ if hasattr (error , 'reason' ) and error .reason == "invalid continuation byte" :
111+ return total_rows_processed_count , error
112+ else :
113+ raise error
107114 return total_rows_processed_count , None
108115
109116
0 commit comments