@@ -658,6 +658,7 @@ export const entrepriseOnboardingWorkflow = {
658658      naf_label : "naf_label"  in  siretResponse  ? siretResponse . naf_label  : undefined , 
659659      naf_code : "naf_code"  in  siretResponse  ? siretResponse . naf_code  : undefined , 
660660    } 
661+ 
661662    if  ( existingFormulaire )  { 
662663      const  result  =  await  getDbCollection ( "recruiters" ) . findOneAndUpdate ( 
663664        {  cfa_delegated_siret,  establishment_siret : siret  } , 
@@ -668,22 +669,48 @@ export const entrepriseOnboardingWorkflow = {
668669          } , 
669670        } 
670671      ) 
672+ 
671673      if  ( ! result )  { 
672-         throw  new  Error ( `inattendu: recruiter introuvable` ) 
674+         const  err  =  new  Error ( "inattendu: recruiter introuvable lors de l'édition du compte par un CFA" ) 
675+         sentryCaptureException ( err ) 
676+         return  { 
677+           error : true , 
678+           message : "Une erreur est survenue lors de l'édition du compte. Merci de contacter le support." , 
679+           errorCode : BusinessErrorCodes . UNKNOWN , 
680+         } 
673681      } 
674682      return  result 
675683    }  else  { 
676-       const  formulaireInfo  =  await  createFormulaire ( 
677-         { 
678-           ...entrepriseToRecruiter ( entreprise ) , 
679-           ...updatedFields , 
680-           jobs : [ ] , 
681-           cfa_delegated_siret, 
682-           origin, 
683-         } , 
684-         managedBy 
685-       ) 
686-       return  formulaireInfo 
684+       try  { 
685+         const  formulaireInfo  =  await  createFormulaire ( 
686+           { 
687+             ...entrepriseToRecruiter ( entreprise ) , 
688+             ...updatedFields , 
689+             jobs : [ ] , 
690+             cfa_delegated_siret, 
691+             origin, 
692+           } , 
693+           managedBy 
694+         ) 
695+ 
696+         return  formulaireInfo 
697+       }  catch  ( err : any )  { 
698+         sentryCaptureException ( err ) 
699+ 
700+         if  ( err . message ?. includes ( "duplicate key error" ) )  { 
701+           return  { 
702+             error : true , 
703+             message : "Un compte est déjà associé à ce couple email/siret." , 
704+             errorCode : BusinessErrorCodes . EMAIL_ALREADY_EXISTS , 
705+           } 
706+         } 
707+ 
708+         return  { 
709+           error : true , 
710+           message : "Une erreur est survenue lors de la création du compte. Merci de contacter le support." , 
711+           errorCode : BusinessErrorCodes . UNKNOWN , 
712+         } 
713+       } 
687714    } 
688715  } , 
689716} 
0 commit comments