diff --git a/README.md b/README.md
index f70e98872cc60929900ad995b01b2dc73dae935c..b01b30f63ee10dc67f45c60e3cfdca1c8d63d74c 100644
--- a/README.md
+++ b/README.md
@@ -4,4 +4,4 @@ Retrieving consumption data from Enedis SGE SOAP api
 
 ## Documentation
 
-[Enedis SGE Konnector - Self-Data](https://doc.self-data.alpha.grandlyon.com/konnectors/enedis-sge/)
+[Enedis SGE Konnector - Self-Data](https://doc-self-data.apps.grandlyon.com/konnectors/enedis-sge/)
diff --git a/index.js b/index.js
index b2ef68eb8837ddf891047f9080cc382be941c0bb..c514e5efa1b487c7e716c99a576f7d9f9d270081 100644
--- a/index.js
+++ b/index.js
@@ -23,10 +23,12 @@ const {
   parseValue,
   parseValueHalfHour,
   parsePointId,
+  parseUserOffPeakHours,
 } = __webpack_require__(1599)
 const {
   consultationMesuresDetailleesMaxPower,
   consultationMesuresDetaillees,
+  consulterDonneesTechniquesContractuelles,
 } = __webpack_require__(1680)
 const {
   updateBoConsent,
@@ -40,12 +42,13 @@ const {
   verifyContract,
   terminateContract,
 } = __webpack_require__(1719)
-const { getAccount, saveAccountData } = __webpack_require__(1729)
-const { isLocal, isDev } = __webpack_require__(1730)
+const { getAccount, saveAccountData } = __webpack_require__(1730)
+const { isLocal, isDev } = __webpack_require__(1731)
 const Sentry = __webpack_require__(1600)
 // eslint-disable-next-line
-const Tracing = __webpack_require__(1731) // Needed for tracking performance in Sentry
-const { version } = __webpack_require__(1768)
+const Tracing = __webpack_require__(1732) // Needed for tracking performance in Sentry
+const { version } = __webpack_require__(1769)
+const { catchRequestReject } = __webpack_require__(1721)
 
 moment.locale('fr') // set the language
 moment.tz.setDefault('Europe/Paris') // set the timezone
@@ -153,6 +156,7 @@ async function start(fields, cozyParameters) {
      */
     log('info', 'User Logging...')
 
+    const boUrlSGE = new URL('/api/sge', boBaseUrl).href
     if (isFirstStart(await getAccount(ACCOUNT_ID))) {
       log('info', 'First start...')
       transaction.startChild({ op: 'First start' })
@@ -166,7 +170,7 @@ async function start(fields, cozyParameters) {
       exitIfDebug(user)
 
       let consent = await createBoConsent(
-        boBaseUrl,
+        boUrlSGE,
         boToken,
         pointId,
         user.lastname,
@@ -200,10 +204,13 @@ async function start(fields, cozyParameters) {
           user.pointId,
           contractStartDate,
           contractEndDate
-        )
+        ).catch(async err => {
+          await deleteBoConsent(boUrlSGE, boToken, consent.ID)
+          throw err
+        })
       }
       consent = await updateBoConsent(
-        boBaseUrl,
+        boUrlSGE,
         boToken,
         consent,
         serviceId.toString()
@@ -222,7 +229,7 @@ async function start(fields, cozyParameters) {
       transaction.startChild({ op: 'Alternate start' })
       const accountData = await getAccount(ACCOUNT_ID)
       const userConsent = await getBoConsent(
-        boBaseUrl,
+        boUrlSGE,
         boToken,
         accountData.data.consentId
       )
@@ -261,7 +268,7 @@ async function start(fields, cozyParameters) {
           sgeLogin,
           contractId,
           pointId,
-          boBaseUrl,
+          boUrlSGE,
           boToken,
           consentEndDate < today
         )
@@ -349,24 +356,18 @@ async function deleteConsent(
  */
 async function gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) {
   log('info', 'Querying data...')
-  await getData(
-    `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`,
-    apiAuthKey,
-    sgeLogin,
-    pointId
-  )
-  await getMaxPowerData(
-    `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`,
-    apiAuthKey,
-    sgeLogin,
-    pointId
-  )
-  await getDataHalfHour(
-    `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`,
-    apiAuthKey,
-    sgeLogin,
-    pointId
-  )
+  const measuresUrl = new URL(
+    '/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0',
+    baseUrl
+  ).href
+  const contractUrl = new URL(
+    '/enedis_SGE_ConsultationDonneesTechniquesContractuelles/1.0',
+    baseUrl
+  ).href
+  await getData(measuresUrl, apiAuthKey, sgeLogin, pointId)
+  await getMaxPowerData(measuresUrl, apiAuthKey, sgeLogin, pointId)
+  await getDataHalfHour(measuresUrl, apiAuthKey, sgeLogin, pointId)
+  await getOffPeakHours(contractUrl, apiAuthKey, sgeLogin, pointId)
   log('info', 'Querying data: done')
 }
 
@@ -377,8 +378,70 @@ async function gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) {
  * @param {string} userLogin
  * @param {string} pointId
  */
+async function getOffPeakHours(url, apiAuthKey, userLogin, pointId) {
+  log('info', 'Fetching off-peak hours')
+  const sgeHeaders = {
+    'Content-Type': 'text/xml;charset=UTF-8',
+    apikey: apiAuthKey,
+  }
+
+  const { response } = await soapRequest({
+    url: url,
+    headers: sgeHeaders,
+    xml: consulterDonneesTechniquesContractuelles(pointId, userLogin, false),
+  }).catch(err => {
+    log('error', 'consulterDonneesTechniquesContractuelles')
+    log('error', err)
+    Sentry.captureException(
+      `consulterDonneesTechniquesContractuelles: ${err}`,
+      {
+        tags: { section: 'getOffPeakHour' },
+        extra: {
+          pointId: pointId,
+        },
+      }
+    )
+    return err
+  })
+
+  catchRequestReject(response.body)
+
+  const result = await xml2js.parseStringPromise(response.body, {
+    tagNameProcessors: [parseTags],
+    valueProcessors: [parseValue],
+    explicitArray: false,
+  })
+
+  try {
+    const offPeakHours = parseUserOffPeakHours(result)
+    log(
+      'debug',
+      `Found off-peak hours : ${offPeakHours}, store them in account data`
+    )
+    const accountData = await getAccount(ACCOUNT_ID)
+    await saveAccountData(ACCOUNT_ID, {
+      ...accountData.data,
+      offPeakHours,
+    })
+  } catch (error) {
+    log('debug', 'Off-peak hours not found, remove them from account data')
+    let accountData = await getAccount(ACCOUNT_ID)
+    delete accountData.data.offPeakHours
+    await saveAccountData(ACCOUNT_ID, {
+      ...accountData.data,
+    })
+  }
+}
+
+/**
+ * Get daily data
+ * @param {string} url
+ * @param {string} apiAuthKey
+ * @param {string} userLogin
+ * @param {string} pointId
+ */
 async function getData(url, apiAuthKey, userLogin, pointId) {
-  log('info', 'Fetching data')
+  log('info', 'Fetching daily data')
   const sgeHeaders = {
     'Content-Type': 'text/xml;charset=UTF-8',
     apikey: apiAuthKey,
@@ -404,6 +467,8 @@ async function getData(url, apiAuthKey, userLogin, pointId) {
     return err
   })
 
+  catchRequestReject(response.body)
+
   xml2js.parseString(
     response.body,
     {
@@ -411,7 +476,7 @@ async function getData(url, apiAuthKey, userLogin, pointId) {
       valueProcessors: [parseValue],
       explicitArray: false,
     },
-    processData()
+    processData('com.grandlyon.enedis.day')
   )
 }
 
@@ -447,6 +512,8 @@ async function getMaxPowerData(url, apiAuthKey, userLogin, pointId) {
     return err
   })
 
+  catchRequestReject(response.body)
+
   xml2js.parseString(
     response.body,
     {
@@ -466,7 +533,7 @@ async function getMaxPowerData(url, apiAuthKey, userLogin, pointId) {
  * @param {string} pointId
  */
 async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) {
-  log('info', 'Fetching data')
+  log('info', 'Fetching half-hour data')
   const sgeHeaders = {
     'Content-Type': 'text/xml;charset=UTF-8',
     apikey: apiAuthKey,
@@ -507,6 +574,8 @@ async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) {
       return err
     })
 
+    catchRequestReject(response.body)
+
     xml2js.parseString(
       response.body,
       {
@@ -524,7 +593,7 @@ async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) {
  * @param {string} doctype
  * @returns
  */
-function processData(doctype = 'com.grandlyon.enedis.day') {
+function processData(doctype) {
   return async (err, result) => {
     if (err) {
       log('error', err)
@@ -532,7 +601,7 @@ function processData(doctype = 'com.grandlyon.enedis.day') {
       throw err
     }
     // Return only needed part of info
-    log('info', doctype)
+    log('info', `Processing ${doctype} data`)
     try {
       const data = parseSgeXmlData(result)
       const processedDailyData = await storeData(
@@ -540,8 +609,6 @@ function processData(doctype = 'com.grandlyon.enedis.day') {
         doctype,
         ['year', 'month', 'day', 'hour', 'minute']
       )
-
-      log('info', 'Aggregate enedis daily data for month and year')
       if (doctype === 'com.grandlyon.enedis.day') {
         log('info', 'Aggregating...')
         await aggregateMonthAndYearData(processedDailyData)
@@ -153741,7 +153808,7 @@ const fs = __webpack_require__(149);
 
 const path = __webpack_require__(142);
 
-let manifest = typeof {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
+let manifest = typeof {"version":"1.4.0","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.4.0","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
 
 if (process.env.NODE_ENV !== undefined && process.env.NODE_ENV !== 'none' && process.env.NODE_ENV !== 'production') {
   try {
@@ -229093,6 +229160,31 @@ function parseUserAddress(result) {
   ]['point']['donneesGenerales']['adresseInstallation']
 }
 
+/**
+ * Return User off-peak hours
+ * @param {string} result
+ * @returns {string}
+ * @example "3H00-8H00;13H30-16H30"
+ */
+function parseUserOffPeakHours(result) {
+  log('info', 'Parsing user off-peak hours')
+  const json = JSON.stringify(result)
+  const rawOffPeakHours =
+    JSON.parse(json)['Envelope']['Body'][
+      'consulterDonneesTechniquesContractuellesResponse'
+    ]['point']['situationComptage']['dispositifComptage']['relais'][
+      'plageHeuresCreuses'
+    ]
+  // extract off-peak hours from parentheses
+  let match = rawOffPeakHours.match(/\((.*?)\)/)
+  // Check if there is a match and return the content
+  if (match) {
+    return match[1]
+  } else {
+    throw new Error('invalid off-peak hours format')
+  }
+}
+
 /**
  * Return User contract start date
  * @param {string} result
@@ -229142,12 +229234,12 @@ async function formateDataForDoctype(data) {
   return data.map(record => {
     const date = moment(record.d, 'YYYY/MM/DD h:mm:ss')
     return {
-      load: record.v,
       year: parseInt(date.format('YYYY')),
       month: parseInt(date.format('M')),
       day: parseInt(date.format('D')),
       hour: parseInt(date.format('H')),
       minute: parseInt(date.format('m')),
+      load: record.v,
     }
   })
 }
@@ -229283,6 +229375,7 @@ module.exports = {
   parseSgeXmlData,
   parseTags,
   parseUserAddress,
+  parseUserOffPeakHours,
   parseUserPdl,
   parseValue,
   parseValueHalfHour,
@@ -246952,11 +247045,11 @@ module.exports = function isAxiosError(payload) {
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { activateContract } = __webpack_require__(1720)
-const { terminateContract } = __webpack_require__(1721)
-const { verifyContract } = __webpack_require__(1722)
-const { findUserPdl } = __webpack_require__(1724)
-const { verifyUserIdentity } = __webpack_require__(1725)
-const { findUserAddress } = __webpack_require__(1727)
+const { terminateContract } = __webpack_require__(1722)
+const { verifyContract } = __webpack_require__(1723)
+const { findUserPdl } = __webpack_require__(1725)
+const { verifyUserIdentity } = __webpack_require__(1726)
+const { findUserAddress } = __webpack_require__(1728)
 
 module.exports = {
   activateContract,
@@ -246979,6 +247072,7 @@ const { parseTags, parseValue, parseServiceId } = __webpack_require__(1599)
 const { commanderCollectePublicationMesures } = __webpack_require__(1680)
 const xml2js = __webpack_require__(1557)
 const Sentry = __webpack_require__(1600)
+const { catchRequestReject } = __webpack_require__(1721)
 
 /**
  * @param {string} url
@@ -247033,6 +247127,8 @@ async function activateContract(
     throw new Error(errors.CAPTCHA_RESOLUTION_FAILED)
   })
 
+  catchRequestReject(response.body)
+
   const parsedReply = await xml2js.parseStringPromise(response.body, {
     tagNameProcessors: [parseTags],
     valueProcessors: [parseValue],
@@ -247065,6 +247161,32 @@ module.exports = { activateContract }
 /* 1721 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
+const { log } = __webpack_require__(1)
+
+/**
+ * Throw an error if the response contains a  "Request Rejected"
+ * Enedis might send a 429 status but the F5 always transform it to a 200
+ * @param {string} response
+ * @example <html><head><title>Request Rejected</title></head>
+ * <body>The requested URL was rejected. Please consult with your administrator</body></html>
+ */
+function catchRequestReject(response) {
+  if (response.includes('Request Rejected')) {
+    const supportID = response.replace(/\D/g, '')
+    log('debug', response.slice(0, 100))
+    log('error', `Support ID : ${supportID}`)
+    log('error', 'Request Rejected')
+    throw new Error('Request Rejected')
+  }
+}
+
+module.exports = { catchRequestReject }
+
+
+/***/ }),
+/* 1722 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
 // @ts-check
 const { log, errors } = __webpack_require__(1)
 const soapRequest = __webpack_require__(1375)
@@ -247072,6 +247194,7 @@ const { parseTags, parseValue } = __webpack_require__(1599)
 const { commanderArretServiceSouscritMesures } = __webpack_require__(1680)
 const xml2js = __webpack_require__(1557)
 const Sentry = __webpack_require__(1600)
+const { catchRequestReject } = __webpack_require__(1721)
 
 /**
  * @param {string} url
@@ -247120,6 +247243,8 @@ async function terminateContract(
     throw new Error(errors.VENDOR_DOWN)
   })
 
+  catchRequestReject(response.body)
+
   const parsedReply = await xml2js.parseStringPromise(response.body, {
     tagNameProcessors: [parseTags],
     valueProcessors: [parseValue],
@@ -247156,7 +247281,7 @@ module.exports = { terminateContract }
 
 
 /***/ }),
-/* 1722 */
+/* 1723 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247170,8 +247295,9 @@ const {
 } = __webpack_require__(1599)
 const { rechercherServicesSouscritsMesures } = __webpack_require__(1680)
 const xml2js = __webpack_require__(1557)
-const { contractState } = __webpack_require__(1723)
+const { contractState } = __webpack_require__(1724)
 const Sentry = __webpack_require__(1600)
+const { catchRequestReject } = __webpack_require__(1721)
 
 /**
  * @param {string} url
@@ -247206,6 +247332,12 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
     throw new Error(errors.CAPTCHA_RESOLUTION_FAILED)
   })
 
+  try {
+    catchRequestReject(response.body)
+  } catch (error) {
+    throw new Error(errors.CAPTCHA_RESOLUTION_FAILED)
+  }
+
   const parsedReply = await xml2js.parseStringPromise(response.body, {
     tagNameProcessors: [parseTags],
     valueProcessors: [parseValue],
@@ -247240,7 +247372,7 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
         section: 'verifyContract',
       },
     })
-    if (parsedReply.Envelope.Body.Fault) {
+    if (parsedReply?.Envelope?.Body?.Fault) {
       log(
         'error',
         `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
@@ -247258,7 +247390,7 @@ module.exports = { verifyContract }
 
 
 /***/ }),
-/* 1723 */
+/* 1724 */
 /***/ ((module) => {
 
 /**
@@ -247276,7 +247408,7 @@ module.exports = { contractState }
 
 
 /***/ }),
-/* 1724 */
+/* 1725 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247286,6 +247418,7 @@ const { parseUserPdl, parseTags, parseValue } = __webpack_require__(1599)
 const { rechercherPoint } = __webpack_require__(1680)
 const xml2js = __webpack_require__(1557)
 const Sentry = __webpack_require__(1600)
+const { catchRequestReject } = __webpack_require__(1721)
 
 /**
  * @param {string} url
@@ -247341,12 +247474,17 @@ async function findUserPdl(
       throw new Error(errors.VENDOR_DOWN)
     })
 
-    const parsedReply = await xml2js.parseStringPromise(response.body, {
-      tagNameProcessors: [parseTags],
-      valueProcessors: [parseValue],
-      explicitArray: false,
-    })
+    catchRequestReject(response.body)
 
+    const parsedReply = await xml2js
+      .parseStringPromise(response.body, {
+        tagNameProcessors: [parseTags],
+        valueProcessors: [parseValue],
+        explicitArray: false,
+      })
+      .catch(error => {
+        log('error', 'Error while parsing XML: ' + error)
+      })
     try {
       return parseUserPdl(parsedReply)
     } catch (error) {
@@ -247374,21 +247512,21 @@ module.exports = { findUserPdl }
 
 
 /***/ }),
-/* 1725 */
+/* 1726 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
 const { log, errors } = __webpack_require__(1)
-const { findUserPdl } = __webpack_require__(1724)
-const { getInseeCode } = __webpack_require__(1726)
-const { findUserAddress } = __webpack_require__(1727)
+const { findUserPdl } = __webpack_require__(1725)
+const { getInseeCode } = __webpack_require__(1727)
+const { findUserAddress } = __webpack_require__(1728)
 const {
   removeMultipleSpaces,
   removeDots,
   removeAddressNumber,
 } = __webpack_require__(1599)
 const Sentry = __webpack_require__(1600)
-const { sanitizeLastname } = __webpack_require__(1728)
+const { sanitizeLastname } = __webpack_require__(1729)
 
 /**
  * Verify user identity
@@ -247417,7 +247555,7 @@ async function verifyUserIdentity(
   // Store if user is going through safety sge onboarding
   let userSafetyOnBoarding = false
 
-  // First try with user adresse
+  // First try with user address
   let pdl = await findUserPdl(
     `${baseUrl}/enedis_SDE_recherche-point/1.0`,
     apiAuthKey,
@@ -247446,7 +247584,7 @@ async function verifyUserIdentity(
       userAddress.escalierEtEtageEtAppartement
         ? removeMultipleSpaces(userAddress.escalierEtEtageEtAppartement)
         : ''
-
+    // Second try, trim whitespace
     pdl = await findUserPdl(
       `${baseUrl}/enedis_SDE_recherche-point/1.0`,
       apiAuthKey,
@@ -247513,13 +247651,15 @@ async function verifyUserIdentity(
     log('error', 'PointId does not match')
 
     if (isAlternateStart) {
-      Sentry.captureException('PointId does not match: Alternate start', {
+      Sentry.captureException('PointId no longer match', {
         tags: { section: 'verifyUserIdentity' },
+        extra: { foundPdl: pdl },
       })
-      throw new Error(errors.TERMS_VERSION_MISMATCH)
+      throw new Error(errors.USER_ACTION_NEEDED_PERMISSIONS_CHANGED)
     } else {
       Sentry.captureException('PointId does not match', {
         tags: { section: 'verifyUserIdentity' },
+        extra: { foundPdl: pdl },
       })
       throw new Error(errors.LOGIN_FAILED)
     }
@@ -247541,7 +247681,7 @@ module.exports = { verifyUserIdentity }
 
 
 /***/ }),
-/* 1726 */
+/* 1727 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247637,7 +247777,7 @@ module.exports = {
 
 
 /***/ }),
-/* 1727 */
+/* 1728 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -247651,6 +247791,7 @@ const {
 const xml2js = __webpack_require__(1557)
 const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1680)
 const Sentry = __webpack_require__(1600)
+const { catchRequestReject } = __webpack_require__(1721)
 
 /**
  * Get user contract start date
@@ -247685,6 +247826,8 @@ async function findUserAddress(url, apiAuthKey, userLogin, pointId) {
     throw new Error(errors.VENDOR_DOWN)
   })
 
+  catchRequestReject(response.body)
+
   const result = await xml2js.parseStringPromise(response.body, {
     tagNameProcessors: [parseTags],
     valueProcessors: [parseValue],
@@ -247713,7 +247856,7 @@ module.exports = { findUserAddress }
 
 
 /***/ }),
-/* 1728 */
+/* 1729 */
 /***/ ((module) => {
 
 const REPLACE_CHARS = {
@@ -247749,11 +247892,11 @@ module.exports = { sanitizeLastname }
 
 
 /***/ }),
-/* 1729 */
+/* 1730 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { log, updateOrCreate } = __webpack_require__(1)
-const { isLocal } = __webpack_require__(1730)
+const { isLocal } = __webpack_require__(1731)
 const cozyClient = __webpack_require__(485)
 
 async function saveAccountData(accountId, accountData) {
@@ -247814,7 +247957,7 @@ module.exports = { getAccount, saveAccountData, getAccountForDelete }
 
 
 /***/ }),
-/* 1730 */
+/* 1731 */
 /***/ ((module) => {
 
 function isLocal() {
@@ -247840,7 +247983,7 @@ module.exports = { isLocal, isDev }
 
 
 /***/ }),
-/* 1731 */
+/* 1732 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -247864,15 +248007,15 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "extractTraceparentData": () => (/* reexport safe */ _sentry_utils__WEBPACK_IMPORTED_MODULE_9__.extractTraceparentData),
 /* harmony export */   "stripUrlQueryAndFragment": () => (/* reexport safe */ _sentry_utils__WEBPACK_IMPORTED_MODULE_10__.stripUrlQueryAndFragment)
 /* harmony export */ });
-/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1732);
-/* harmony import */ var _integrations_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1740);
-/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1735);
-/* harmony import */ var _spanstatus_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1767);
-/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1734);
-/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1736);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1733);
-/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1749);
-/* harmony import */ var _browser_request_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1752);
+/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1733);
+/* harmony import */ var _integrations_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1741);
+/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1736);
+/* harmony import */ var _spanstatus_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1768);
+/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1735);
+/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1737);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1734);
+/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1750);
+/* harmony import */ var _browser_request_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1753);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1678);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1668);
 
@@ -247903,7 +248046,7 @@ if (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {
 
 
 /***/ }),
-/* 1732 */
+/* 1733 */
 /***/ ((module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -247917,10 +248060,10 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1610);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1606);
-/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1737);
-/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1736);
-/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1734);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1733);
+/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1738);
+/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1737);
+/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1735);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1734);
 /* module decorator */ module = __webpack_require__.hmd(module);
 
 
@@ -248221,7 +248364,7 @@ function addExtensionMethods() {
 
 
 /***/ }),
-/* 1733 */
+/* 1734 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248282,7 +248425,7 @@ function secToMs(time) {
 
 
 /***/ }),
-/* 1734 */
+/* 1735 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248295,7 +248438,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1604);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1611);
-/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1735);
+/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1736);
 
 
 
@@ -248576,7 +248719,7 @@ class Transaction extends _span_js__WEBPACK_IMPORTED_MODULE_0__.Span  {
 
 
 /***/ }),
-/* 1735 */
+/* 1736 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248974,7 +249117,7 @@ function spanStatusfromHttpCode(httpStatus) {
 
 
 /***/ }),
-/* 1736 */
+/* 1737 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -248988,8 +249131,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ });
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1604);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1614);
-/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1735);
-/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1734);
+/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1736);
+/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1735);
 
 
 
@@ -249294,7 +249437,7 @@ function clearActiveTransaction(hub) {
 
 
 /***/ }),
-/* 1737 */
+/* 1738 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -249302,9 +249445,9 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "registerErrorInstrumentation": () => (/* binding */ registerErrorInstrumentation)
 /* harmony export */ });
-/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1738);
+/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1739);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1614);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1733);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1734);
 
 
 
@@ -249333,7 +249476,7 @@ function errorCallback() {
 
 
 /***/ }),
-/* 1738 */
+/* 1739 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -249345,7 +249488,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _stacktrace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1623);
-/* harmony import */ var _supports_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1739);
+/* harmony import */ var _supports_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1740);
 /* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1605);
 
 
@@ -249924,7 +250067,7 @@ function instrumentUnhandledRejection() {
 
 
 /***/ }),
-/* 1739 */
+/* 1740 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250126,7 +250269,7 @@ function supportsHistory() {
 
 
 /***/ }),
-/* 1740 */
+/* 1741 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250141,14 +250284,14 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "Apollo": () => (/* reexport safe */ _node_apollo_js__WEBPACK_IMPORTED_MODULE_6__.Apollo),
 /* harmony export */   "BrowserTracing": () => (/* reexport safe */ _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__.BrowserTracing)
 /* harmony export */ });
-/* harmony import */ var _node_express_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1741);
-/* harmony import */ var _node_postgres_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1743);
-/* harmony import */ var _node_mysql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1744);
-/* harmony import */ var _node_mongo_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1745);
-/* harmony import */ var _node_prisma_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1746);
-/* harmony import */ var _node_graphql_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1747);
-/* harmony import */ var _node_apollo_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1748);
-/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1749);
+/* harmony import */ var _node_express_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1742);
+/* harmony import */ var _node_postgres_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1744);
+/* harmony import */ var _node_mysql_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1745);
+/* harmony import */ var _node_mongo_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1746);
+/* harmony import */ var _node_prisma_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1747);
+/* harmony import */ var _node_graphql_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1748);
+/* harmony import */ var _node_apollo_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1749);
+/* harmony import */ var _browser_browsertracing_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1750);
 
 
 
@@ -250162,7 +250305,7 @@ __webpack_require__.r(__webpack_exports__);
 
 
 /***/ }),
-/* 1741 */
+/* 1742 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250175,7 +250318,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1668);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1669);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1743);
 
 
 
@@ -250517,7 +250660,7 @@ function getLayerRoutePathString(isArray, lrp) {
 
 
 /***/ }),
-/* 1742 */
+/* 1743 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250546,7 +250689,7 @@ function shouldDisableAutoInstrumentation(getCurrentHub) {
 
 
 /***/ }),
-/* 1743 */
+/* 1744 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250559,7 +250702,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
 
 
 
@@ -250654,7 +250797,7 @@ class Postgres  {
 
 
 /***/ }),
-/* 1744 */
+/* 1745 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250666,7 +250809,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1606);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
 
 
 
@@ -250737,7 +250880,7 @@ class Mysql  {constructor() { Mysql.prototype.__init.call(this); }
 
 
 /***/ }),
-/* 1745 */
+/* 1746 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250750,7 +250893,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
 
 
 
@@ -250968,7 +251111,7 @@ class Mongo  {
 
 
 /***/ }),
-/* 1746 */
+/* 1747 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -250979,7 +251122,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1624);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1743);
 
 
 
@@ -251064,7 +251207,7 @@ class Prisma  {
 
 
 /***/ }),
-/* 1747 */
+/* 1748 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251077,7 +251220,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
 
 
 
@@ -251148,7 +251291,7 @@ class GraphQL  {constructor() { GraphQL.prototype.__init.call(this); }
 
 
 /***/ }),
-/* 1748 */
+/* 1749 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251162,7 +251305,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1611);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1608);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1610);
-/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1742);
+/* harmony import */ var _utils_node_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1743);
 
 
 
@@ -251281,7 +251424,7 @@ function wrapResolver(
 
 
 /***/ }),
-/* 1749 */
+/* 1750 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251296,13 +251439,13 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1678);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1656);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1612);
-/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1732);
-/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1736);
-/* harmony import */ var _backgroundtab_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1766);
-/* harmony import */ var _metrics_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1753);
-/* harmony import */ var _request_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1752);
-/* harmony import */ var _router_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1750);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1751);
+/* harmony import */ var _hubextensions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1733);
+/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1737);
+/* harmony import */ var _backgroundtab_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1767);
+/* harmony import */ var _metrics_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1754);
+/* harmony import */ var _request_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1753);
+/* harmony import */ var _router_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1751);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1752);
 
 
 
@@ -251493,7 +251636,7 @@ function getMetaContent(metaName) {
 
 
 /***/ }),
-/* 1750 */
+/* 1751 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251502,8 +251645,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "instrumentRoutingWithDefaults": () => (/* binding */ instrumentRoutingWithDefaults)
 /* harmony export */ });
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1614);
-/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1738);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
+/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1739);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
 
 
 
@@ -251569,7 +251712,7 @@ function instrumentRoutingWithDefaults(
 
 
 /***/ }),
-/* 1751 */
+/* 1752 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251587,7 +251730,7 @@ const WINDOW = _sentry_utils__WEBPACK_IMPORTED_MODULE_0__.GLOBAL_OBJ ;
 
 
 /***/ }),
-/* 1752 */
+/* 1753 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251600,11 +251743,11 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "shouldAttachHeaders": () => (/* binding */ shouldAttachHeaders),
 /* harmony export */   "xhrCallback": () => (/* binding */ xhrCallback)
 /* harmony export */ });
-/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1738);
+/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1739);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1609);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1656);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1610);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1733);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1734);
 
 
 
@@ -251870,7 +252013,7 @@ function xhrCallback(
 
 
 /***/ }),
-/* 1753 */
+/* 1754 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -251886,14 +252029,14 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1604);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1614);
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1612);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1733);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
-/* harmony import */ var _web_vitals_getCLS_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1755);
-/* harmony import */ var _web_vitals_getFID_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1764);
-/* harmony import */ var _web_vitals_getLCP_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1762);
-/* harmony import */ var _web_vitals_lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1763);
-/* harmony import */ var _web_vitals_lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1754);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1765);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1734);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
+/* harmony import */ var _web_vitals_getCLS_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1756);
+/* harmony import */ var _web_vitals_getFID_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1765);
+/* harmony import */ var _web_vitals_getLCP_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1763);
+/* harmony import */ var _web_vitals_lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1764);
+/* harmony import */ var _web_vitals_lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1755);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1766);
 
 
 
@@ -252332,7 +252475,7 @@ function _tagMetricInfo(transaction) {
 
 
 /***/ }),
-/* 1754 */
+/* 1755 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252380,7 +252523,7 @@ const observe = (
 
 
 /***/ }),
-/* 1755 */
+/* 1756 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252388,10 +252531,10 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onCLS": () => (/* binding */ onCLS)
 /* harmony export */ });
-/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1760);
-/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1756);
-/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1754);
-/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1761);
+/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1761);
+/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1757);
+/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1755);
+/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1762);
 
 
 
@@ -252494,7 +252637,7 @@ const onCLS = (onReport, opts = {}) => {
 
 
 /***/ }),
-/* 1756 */
+/* 1757 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252502,10 +252645,10 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "initMetric": () => (/* binding */ initMetric)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1751);
-/* harmony import */ var _generateUniqueID_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1759);
-/* harmony import */ var _getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1758);
-/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1757);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1752);
+/* harmony import */ var _generateUniqueID_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1760);
+/* harmony import */ var _getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1759);
+/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1758);
 
 
 
@@ -252555,7 +252698,7 @@ const initMetric = (name, value) => {
 
 
 /***/ }),
-/* 1757 */
+/* 1758 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252563,7 +252706,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "getNavigationEntry": () => (/* binding */ getNavigationEntry)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
 
 
 /*
@@ -252619,7 +252762,7 @@ const getNavigationEntry = () => {
 
 
 /***/ }),
-/* 1758 */
+/* 1759 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252627,7 +252770,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "getActivationStart": () => (/* binding */ getActivationStart)
 /* harmony export */ });
-/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1757);
+/* harmony import */ var _getNavigationEntry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1758);
 
 
 /*
@@ -252656,7 +252799,7 @@ const getActivationStart = () => {
 
 
 /***/ }),
-/* 1759 */
+/* 1760 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252694,7 +252837,7 @@ const generateUniqueID = () => {
 
 
 /***/ }),
-/* 1760 */
+/* 1761 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252733,7 +252876,7 @@ const bindReporter = (
 
 
 /***/ }),
-/* 1761 */
+/* 1762 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252741,7 +252884,7 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onHidden": () => (/* binding */ onHidden)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
 
 
 /*
@@ -252781,7 +252924,7 @@ const onHidden = (cb, once) => {
 
 
 /***/ }),
-/* 1762 */
+/* 1763 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252789,12 +252932,12 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onLCP": () => (/* binding */ onLCP)
 /* harmony export */ });
-/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1760);
-/* harmony import */ var _lib_getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1758);
-/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1763);
-/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1756);
-/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1754);
-/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1761);
+/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1761);
+/* harmony import */ var _lib_getActivationStart_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1759);
+/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1764);
+/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1757);
+/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1755);
+/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1762);
 
 
 
@@ -252884,7 +253027,7 @@ const onLCP = (onReport, opts = {}) => {
 
 
 /***/ }),
-/* 1763 */
+/* 1764 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252892,8 +253035,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "getVisibilityWatcher": () => (/* binding */ getVisibilityWatcher)
 /* harmony export */ });
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
-/* harmony import */ var _onHidden_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1761);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
+/* harmony import */ var _onHidden_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1762);
 
 
 
@@ -252951,7 +253094,7 @@ const getVisibilityWatcher = (
 
 
 /***/ }),
-/* 1764 */
+/* 1765 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -252959,11 +253102,11 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 /* harmony export */   "onFID": () => (/* binding */ onFID)
 /* harmony export */ });
-/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1760);
-/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1763);
-/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1756);
-/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1754);
-/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1761);
+/* harmony import */ var _lib_bindReporter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1761);
+/* harmony import */ var _lib_getVisibilityWatcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1764);
+/* harmony import */ var _lib_initMetric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1757);
+/* harmony import */ var _lib_observe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1755);
+/* harmony import */ var _lib_onHidden_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1762);
 
 
 
@@ -253030,7 +253173,7 @@ const onFID = (onReport, opts = {}) => {
 
 
 /***/ }),
-/* 1765 */
+/* 1766 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253067,7 +253210,7 @@ function _startChild(transaction, { startTimestamp, ...ctx }) {
 
 
 /***/ }),
-/* 1766 */
+/* 1767 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253076,8 +253219,8 @@ __webpack_require__.r(__webpack_exports__);
 /* harmony export */   "registerBackgroundTabDetection": () => (/* binding */ registerBackgroundTabDetection)
 /* harmony export */ });
 /* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1614);
-/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1733);
-/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1751);
+/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1734);
+/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1752);
 
 
 
@@ -253117,7 +253260,7 @@ function registerBackgroundTabDetection() {
 
 
 /***/ }),
-/* 1767 */
+/* 1768 */
 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
 
 "use strict";
@@ -253172,11 +253315,11 @@ var SpanStatus; (function (SpanStatus) {
 
 
 /***/ }),
-/* 1768 */
+/* 1769 */
 /***/ ((module) => {
 
 "use strict";
-module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.3.5","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
+module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.4.0","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
 
 /***/ })
 /******/ 	]);
diff --git a/manifest.konnector b/manifest.konnector
index e9252c654f180b72a315a78e934a16cf8b38fa00..f888469287b07b6f75b1ecdc5810c2f660165303 100644
--- a/manifest.konnector
+++ b/manifest.konnector
@@ -1,5 +1,5 @@
 {
-  "version": "1.3.5",
+  "version": "1.4.0",
   "name": "Enedis SGE",
   "type": "konnector",
   "language": "node",
diff --git a/onDeleteAccount.js b/onDeleteAccount.js
index db81f441cd37970318c01fbff748412aec7fdbc2..bc1c05678636b756f8f005eff2462cd49d610fb8 100644
--- a/onDeleteAccount.js
+++ b/onDeleteAccount.js
@@ -153102,7 +153102,7 @@ const fs = __webpack_require__(149);
 
 const path = __webpack_require__(142);
 
-let manifest = typeof {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.3.5","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
+let manifest = typeof {"version":"1.4.0","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"} === 'undefined' ? {} : {"version":"1.4.0","name":"Enedis SGE","type":"konnector","language":"node","icon":"icon.png","slug":"enedissgegrandlyon","source":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector.git","editor":"Métropole de Lyon","vendor_link":"https://www.enedis.fr/","categories":["energy"],"frequency":"daily","fields":{"firstname":{"type":"string"},"lastname":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"pointId":{"type":"number"}},"data_types":[],"screenshots":[],"permissions":{"accounts":{"type":"io.cozy.accounts"},"files":{"type":"io.cozy.files"},"enedis data":{"type":"com.grandlyon.enedis.*"}},"developer":{"name":"Métropole de Lyon","url":"https://www.grandlyon.com/"},"langs":["fr"],"locales":{"fr":{"short_description":"Récupère vos données de courbe de charge depuis l'API Enedis","long_description":"Ce connecteur récupère la courbe de charge électrique enregistrée par le compteur Linky","permissions":{"enedis data":{"description":"Requises pour accéder et stocker les données collectées par le compteur Linky et exposées par les API Enedis (consommations d’électricité à la demi-heure, au jour, mois et année). "},"files":{"description":"Cozy files"},"accounts":{"description":"Utilisé pour accéder à vos données de consommation."}}},"en":{"short_description":"Fetches your electricity consumption data from Enedis API","long_description":"This konnector fetches the energy curve of your electricity consumption gathered by your Linky device.","permissions":{"enedis data":{"description":"Required to access and store the data collected by the Linky meter and exposed by Enedis APIs (half-an-hour, daily, monthly and yearly consumption)."},"files":{"description":"Cozy files"},"accounts":{"description":"Used to access your consumption data."}}}},"manifest_version":"2","on_delete_account":"onDeleteAccount.js"};
 
 if (process.env.NODE_ENV !== undefined && process.env.NODE_ENV !== 'none' && process.env.NODE_ENV !== 'production') {
   try {
@@ -228345,6 +228345,31 @@ function parseUserAddress(result) {
   ]['point']['donneesGenerales']['adresseInstallation']
 }
 
+/**
+ * Return User off-peak hours
+ * @param {string} result
+ * @returns {string}
+ * @example "3H00-8H00;13H30-16H30"
+ */
+function parseUserOffPeakHours(result) {
+  log('info', 'Parsing user off-peak hours')
+  const json = JSON.stringify(result)
+  const rawOffPeakHours =
+    JSON.parse(json)['Envelope']['Body'][
+      'consulterDonneesTechniquesContractuellesResponse'
+    ]['point']['situationComptage']['dispositifComptage']['relais'][
+      'plageHeuresCreuses'
+    ]
+  // extract off-peak hours from parentheses
+  let match = rawOffPeakHours.match(/\((.*?)\)/)
+  // Check if there is a match and return the content
+  if (match) {
+    return match[1]
+  } else {
+    throw new Error('invalid off-peak hours format')
+  }
+}
+
 /**
  * Return User contract start date
  * @param {string} result
@@ -228394,12 +228419,12 @@ async function formateDataForDoctype(data) {
   return data.map(record => {
     const date = moment(record.d, 'YYYY/MM/DD h:mm:ss')
     return {
-      load: record.v,
       year: parseInt(date.format('YYYY')),
       month: parseInt(date.format('M')),
       day: parseInt(date.format('D')),
       hour: parseInt(date.format('H')),
       minute: parseInt(date.format('m')),
+      load: record.v,
     }
   })
 }
@@ -228535,6 +228560,7 @@ module.exports = {
   parseSgeXmlData,
   parseTags,
   parseUserAddress,
+  parseUserOffPeakHours,
   parseUserPdl,
   parseValue,
   parseValueHalfHour,
@@ -246205,6 +246231,32 @@ module.exports = function isAxiosError(payload) {
 /* 1721 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
+const { log } = __webpack_require__(1)
+
+/**
+ * Throw an error if the response contains a  "Request Rejected"
+ * Enedis might send a 429 status but the F5 always transform it to a 200
+ * @param {string} response
+ * @example <html><head><title>Request Rejected</title></head>
+ * <body>The requested URL was rejected. Please consult with your administrator</body></html>
+ */
+function catchRequestReject(response) {
+  if (response.includes('Request Rejected')) {
+    const supportID = response.replace(/\D/g, '')
+    log('debug', response.slice(0, 100))
+    log('error', `Support ID : ${supportID}`)
+    log('error', 'Request Rejected')
+    throw new Error('Request Rejected')
+  }
+}
+
+module.exports = { catchRequestReject }
+
+
+/***/ }),
+/* 1722 */
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
 // @ts-check
 const { log, errors } = __webpack_require__(1)
 const soapRequest = __webpack_require__(1375)
@@ -246212,6 +246264,7 @@ const { parseTags, parseValue } = __webpack_require__(1599)
 const { commanderArretServiceSouscritMesures } = __webpack_require__(1680)
 const xml2js = __webpack_require__(1557)
 const Sentry = __webpack_require__(1600)
+const { catchRequestReject } = __webpack_require__(1721)
 
 /**
  * @param {string} url
@@ -246260,6 +246313,8 @@ async function terminateContract(
     throw new Error(errors.VENDOR_DOWN)
   })
 
+  catchRequestReject(response.body)
+
   const parsedReply = await xml2js.parseStringPromise(response.body, {
     tagNameProcessors: [parseTags],
     valueProcessors: [parseValue],
@@ -246296,18 +246351,18 @@ module.exports = { terminateContract }
 
 
 /***/ }),
-/* 1722 */,
 /* 1723 */,
 /* 1724 */,
 /* 1725 */,
 /* 1726 */,
 /* 1727 */,
 /* 1728 */,
-/* 1729 */
+/* 1729 */,
+/* 1730 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { log, updateOrCreate } = __webpack_require__(1)
-const { isLocal } = __webpack_require__(1730)
+const { isLocal } = __webpack_require__(1731)
 const cozyClient = __webpack_require__(485)
 
 async function saveAccountData(accountId, accountData) {
@@ -246368,7 +246423,7 @@ module.exports = { getAccount, saveAccountData, getAccountForDelete }
 
 
 /***/ }),
-/* 1730 */
+/* 1731 */
 /***/ ((module) => {
 
 function isLocal() {
@@ -246394,7 +246449,6 @@ module.exports = { isLocal, isDev }
 
 
 /***/ }),
-/* 1731 */,
 /* 1732 */,
 /* 1733 */,
 /* 1734 */,
@@ -246431,14 +246485,15 @@ module.exports = { isLocal, isDev }
 /* 1765 */,
 /* 1766 */,
 /* 1767 */,
-/* 1768 */
+/* 1768 */,
+/* 1769 */
 /***/ ((module) => {
 
 "use strict";
-module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.3.5","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
+module.exports = JSON.parse('{"name":"enedissgegrandlyon","version":"1.4.0","description":"","repository":{"type":"https","url":"https://forge.grandlyon.com/web-et-numerique/llle_project/enedis-sge-konnector"},"keywords":[],"main":"./src/index.js","author":"Cozy Cloud","license":"AGPL-3.0","eslintConfig":{"extends":["cozy-app"]},"eslintIgnore":["build","data"],"husky":{"hooks":{"pre-commit":"yarn lint"}},"jest":{"setupFiles":["./setupTests.js"]},"scripts":{"build":"webpack","clean":"rm -rf ./data","cozyPublish":"cozy-app-publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})","deploy":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build}","deploy-dev":"git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}","dev":"cozy-konnector-dev","lint":"eslint --fix .","onDeleteAccount:standalone":"cozy-konnector-standalone src/onDeleteAccount.js","onDeleteAccount":"cozy-konnector-dev src/onDeleteAccount.js","pretest":"npm run clean","release":"standard-version --no-verify","standalone":"cozy-konnector-standalone","standalone-no-data":"NO_DATA=true cozy-konnector-standalone src/index.js","start":"node ./src/index.js","test:cov":"jest --coverage","test":"jest","travisDeployKey":"./bin/generate_travis_deploy_key"},"dependencies":{"@sentry/node":"^7.23.0","@sentry/tracing":"^7.23.0","axios":"^0.27.2","cozy-konnector-libs":"5.0.0","easy-soap-request":"^4.7.0","jest":"^28.1.3","moment":"^2.29.3","moment-timezone":"^0.5.34","xml2js":"^0.4.23"},"devDependencies":{"cozy-jobs-cli":"2.0.0","cozy-konnector-build":"1.4.5","eslint-config-cozy-app":"5.5.0","eslint-plugin-prettier":"^4.2.1","git-directory-deploy":"1.5.1","jest-junit":"^14.0.0","standard-version":"^9.5.0"}}');
 
 /***/ }),
-/* 1769 */
+/* 1770 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 // @ts-check
@@ -246447,15 +246502,15 @@ const {
   getAccountRev,
   getAccountSecret,
   getAccountId,
-} = __webpack_require__(1770)
+} = __webpack_require__(1771)
 const { getBoConsent, deleteBoConsent } = __webpack_require__(1681)
-const { terminateContract } = __webpack_require__(1721)
-const { getAccountForDelete } = __webpack_require__(1729)
+const { terminateContract } = __webpack_require__(1722)
+const { getAccountForDelete } = __webpack_require__(1730)
 const moment = __webpack_require__(1417)
 __webpack_require__(1554)
-const { isLocal, isDev } = __webpack_require__(1730)
+const { isLocal, isDev } = __webpack_require__(1731)
 const Sentry = __webpack_require__(1600)
-const { version } = __webpack_require__(1768)
+const { version } = __webpack_require__(1769)
 
 moment.locale('fr') // set the language
 moment.tz.setDefault('Europe/Paris') // set the timezone
@@ -246575,11 +246630,11 @@ module.exports = { onDeleteAccount }
 
 
 /***/ }),
-/* 1770 */
+/* 1771 */
 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
 
 const { log } = __webpack_require__(1)
-const { isLocal } = __webpack_require__(1730)
+const { isLocal } = __webpack_require__(1731)
 const Sentry = __webpack_require__(1600)
 
 function getAccountId() {
@@ -246730,7 +246785,7 @@ module.exports = { getAccountId, getAccountRev, getAccountSecret }
 /******/ 	// module cache are used so entry inlining is disabled
 /******/ 	// startup
 /******/ 	// Load entry module and return exports
-/******/ 	var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1769);
+/******/ 	var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1770);
 /******/ 	
 /******/ })()
 ;
\ No newline at end of file
diff --git a/package.json b/package.json
index 5fa1c0561bccfb1b29a42707afdde3c154697faf..6905fd2f30a79b01a0154f9bb3ee29796917d3fa 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "enedissgegrandlyon",
-  "version": "1.3.5",
+  "version": "1.4.0",
   "description": "",
   "repository": {
     "type": "https",