diff --git a/__tests__/core/contractActivation.spec.js b/__tests__/core/contractActivation.spec.js
index e294d21255e7ad83711315e14301e06624d1887b..39bf05c05941c9d78d2d0f103db3ae91549a063f 100644
--- a/__tests__/core/contractActivation.spec.js
+++ b/__tests__/core/contractActivation.spec.js
@@ -36,12 +36,12 @@ describe('activateContract', () => {
       )
       expect(serviceId).toBe(78232791)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
 
     mockParseServiceId.mockRestore()
   })
-  it('should throw LOGIN_FAILED when request fail 🚫', async () => {
+  it('should throw CAPTCHA_RESOLUTION_FAILED when request fail 🚫', async () => {
     mockSoapRequest.mockRejectedValueOnce('reject')
     try {
       await activateContract(
@@ -56,12 +56,12 @@ describe('activateContract', () => {
       )
       expect(true).toBe(false)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
 
     mockParseServiceId.mockRestore()
   })
-  it('should throw LOGIN_FAILED when failing parsing 🚫', async () => {
+  it('should throw CAPTCHA_RESOLUTION_FAILED when failing parsing 🚫', async () => {
     mockSoapRequest.mockResolvedValueOnce(responseMock)
     jest.spyOn(xml2js, 'parseStringPromise').mockResolvedValueOnce({
       Envelope: {
@@ -87,7 +87,7 @@ describe('activateContract', () => {
       )
       expect(true).toBe(false)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
 
     mockParseServiceId.mockRestore()
diff --git a/__tests__/core/contractVerification.spec.js b/__tests__/core/contractVerification.spec.js
index 33b2ab7d1950e406ccbc693e7c873e51e031da85..91228511b10d652b1ba2243dc589c7c0ff8dde9e 100644
--- a/__tests__/core/contractVerification.spec.js
+++ b/__tests__/core/contractVerification.spec.js
@@ -74,7 +74,7 @@ describe('verifyContract', () => {
       )
       expect(serviceId).toBe(78232791)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
 
     mockParseContracts.mockRestore()
@@ -126,7 +126,7 @@ describe('verifyContract', () => {
       )
       expect(serviceId).toBe(78232791)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
 
     mockParseContracts.mockRestore()
@@ -186,12 +186,12 @@ describe('verifyContract', () => {
       )
       expect(serviceId).toBe(null)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
 
     mockParseContracts.mockRestore()
   })
-  it('should return LOGIN_FAILED if issue in request 🚫', async () => {
+  it('should return CAPTCHA_RESOLUTION_FAILED if issue in request 🚫', async () => {
     mockSoapRequest.mockRejectedValueOnce('reject')
 
     try {
@@ -204,10 +204,10 @@ describe('verifyContract', () => {
       )
       expect(true).toBe(false)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
   })
-  it('should return LOGIN_FAILED if issue in parsing 🚫', async () => {
+  it('should return CAPTCHA_RESOLUTION_FAILED if issue in parsing 🚫', async () => {
     mockSoapRequest.mockResolvedValue(responseMock)
     jest.spyOn(xml2js, 'parseStringPromise').mockResolvedValueOnce({
       Envelope: {
@@ -229,7 +229,7 @@ describe('verifyContract', () => {
       )
       expect(true).toBe(false)
     } catch (error) {
-      expect(error).toBe(errors.LOGIN_FAILED)
+      expect(error).toBe(errors.CAPTCHA_RESOLUTION_FAILED)
     }
   })
   it('should return NULL if no contract are found 🚫', async () => {
diff --git a/src/core/contractActivation.js b/src/core/contractActivation.js
index fe80491885cf975b7e2b880857d55b242cda8aac..aa24d5115304684b288781b2e51129fd78278b86 100644
--- a/src/core/contractActivation.js
+++ b/src/core/contractActivation.js
@@ -47,7 +47,7 @@ async function activateContract(
     log('error', 'commanderCollectePublicationMesures')
     log('error', err)
     Sentry.captureException('commanderCollectePublicationMesures', err)
-    throw errors.LOGIN_FAILED
+    throw errors.CAPTCHA_RESOLUTION_FAILED
   })
 
   const parsedReply = await xml2js.parseStringPromise(response.body, {
@@ -71,7 +71,7 @@ async function activateContract(
     //TODO: handle SGT4B8: Il existe déjà plusieurs demandes en cours sur le point ?
     //TODO: handle SGT4H9: La demande ne porte pas sur un point équipé d'un compteur communicant ouvert aux services niveau 2.
     //TODO: handle SGT589: La demande ne peut pas aboutir car le compteur n'est actuellement pas téléopérable.
-    throw errors.LOGIN_FAILED
+    throw errors.CAPTCHA_RESOLUTION_FAILED
   }
 }
 
diff --git a/src/core/contractVerification.js b/src/core/contractVerification.js
index 8bc1c6f2716567969268875f1472b77acf16d5c2..6757f1b43ea6b688a52e881ba37df37052e54b70 100644
--- a/src/core/contractVerification.js
+++ b/src/core/contractVerification.js
@@ -34,7 +34,7 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
     log('error', 'rechercherServicesSouscritsMesures')
     log('error', err)
     Sentry.captureException('rechercherServicesSouscritsMesures', err)
-    throw errors.LOGIN_FAILED
+    throw errors.CAPTCHA_RESOLUTION_FAILED
   })
 
   const parsedReply = await xml2js.parseStringPromise(response.body, {
@@ -77,7 +77,7 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
       'error',
       'if an error is thrown here, it probably means that the contract has already been open today and that enedis cannot open a second one. Wait until tomorow to try again'
     )
-    throw errors.LOGIN_FAILED
+    throw errors.CAPTCHA_RESOLUTION_FAILED
   }
 }