@@ -85,8 +85,7 @@ pub enum ExternalBundlerSendError {
8585 factory_address : Address ,
8686 account_salt : String ,
8787 message : String ,
88- #[ serde( skip_serializing_if = "Option::is_none" ) ]
89- inner_error : Option < serde_json:: Value > ,
88+ inner_error : Option < EngineError > ,
9089 } ,
9190
9291 #[ error( "Deployment lock for account {account_address} could not be acquired: {message}" ) ]
@@ -102,8 +101,7 @@ pub enum ExternalBundlerSendError {
102101 had_deployment_lock : bool ,
103102 stage : String ,
104103 message : String ,
105- #[ serde( skip_serializing_if = "Option::is_none" ) ]
106- inner_error : Option < serde_json:: Value > ,
104+ inner_error : Option < EngineError > ,
107105 } ,
108106
109107 #[ error( "Failed to send UserOperation to bundler: {message}" ) ]
@@ -113,8 +111,7 @@ pub enum ExternalBundlerSendError {
113111 had_deployment_lock : bool ,
114112 user_op : UserOpVersion ,
115113 message : String ,
116- #[ serde( skip_serializing_if = "Option::is_none" ) ]
117- inner_error : Option < serde_json:: Value > ,
114+ inner_error : Option < EngineError > ,
118115 } ,
119116
120117 #[ error( "Invalid RPC Credentials: {message}" ) ]
@@ -288,7 +285,7 @@ where
288285 . factory_address ,
289286 account_salt : job_data. execution_options . account_salt . clone ( ) ,
290287 message : e. to_string ( ) ,
291- inner_error : serde_json :: to_value ( & e ) . ok ( ) ,
288+ inner_error : Some ( e ) ,
292289 } )
293290 . map_err_fail ( ) ?,
294291 } ;
@@ -561,7 +558,7 @@ fn map_build_error(
561558 nonce_used : nonce,
562559 stage,
563560 message : engine_error. to_string ( ) ,
564- inner_error : serde_json :: to_value ( & engine_error) . ok ( ) ,
561+ inner_error : Some ( engine_error. clone ( ) ) ,
565562 had_deployment_lock : had_lock,
566563 }
567564}
@@ -581,7 +578,7 @@ fn map_bundler_error(
581578 nonce_used : nonce,
582579 user_op : signed_user_op. clone ( ) ,
583580 message : engine_error. to_string ( ) ,
584- inner_error : serde_json :: to_value ( & engine_error) . ok ( ) ,
581+ inner_error : Some ( engine_error) ,
585582 had_deployment_lock : had_lock,
586583 }
587584}
@@ -597,6 +594,7 @@ fn is_build_error_retryable(e: &EngineError) -> bool {
597594 }
598595 EngineError :: PaymasterError { kind, .. } | EngineError :: BundlerError { kind, .. } => {
599596 !is_http_error_code ( kind, 400 )
597+ && !is_http_error_code ( kind, 401 )
600598 && !matches ! (
601599 kind,
602600 engine_core:: error:: RpcErrorKind :: ErrorResp ( r)
0 commit comments