diff --git a/5/ecolyo.a6852f7614d6d973097a.js b/5/ecolyo.c5c7d92a1d95428b1de7.js
similarity index 98%
rename from 5/ecolyo.a6852f7614d6d973097a.js
rename to 5/ecolyo.c5c7d92a1d95428b1de7.js
index 50c697c8699209f71dddd72ae11ac4ed59851207..bcbf66a275b762d83507dd12f798f3ff13286de0 100644
--- a/5/ecolyo.a6852f7614d6d973097a.js
+++ b/5/ecolyo.c5c7d92a1d95428b1de7.js
@@ -2892,9 +2892,7 @@ Object.defineProperty(exports, "__esModule", {
   value: true
 });
 exports.GrdfWaitConsent = void 0;
-var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
 var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
 var _core = __webpack_require__("rMFn");
 var _grdfMail = _interopRequireDefault(__webpack_require__("70Fk"));
 var _StyledIcon = _interopRequireDefault(__webpack_require__("VP3k"));
@@ -2917,31 +2915,15 @@ var GrdfWaitConsent = function GrdfWaitConsent() {
     fluidStatus = _useAppSelector.fluidStatus;
   var currentFluidStatus = fluidStatus[_enums.FluidType.GAS];
   var authData = (_currentFluidStatus$c = currentFluidStatus.connection.account) === null || _currentFluidStatus$c === void 0 ? void 0 : _currentFluidStatus$c.auth;
-  var updateKonnector = /*#__PURE__*/function () {
-    var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-      var updatedConnection;
-      return _regenerator.default.wrap(function _callee$(_context) {
-        while (1) {
-          switch (_context.prev = _context.next) {
-            case 0:
-              updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
-                shouldLaunchKonnector: true
-              });
-              dispatch((0, _global.updateFluidConnection)({
-                fluidType: currentFluidStatus.fluidType,
-                fluidConnection: updatedConnection
-              }));
-            case 2:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee);
+  var updateKonnector = function updateKonnector() {
+    var updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
+      shouldLaunchKonnector: true
+    });
+    dispatch((0, _global.updateFluidConnection)({
+      fluidType: currentFluidStatus.fluidType,
+      fluidConnection: updatedConnection
     }));
-    return function updateKonnector() {
-      return _ref.apply(this, arguments);
-    };
-  }();
+  };
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "grdfWait"
   }, /*#__PURE__*/_react.default.createElement("div", {
@@ -3034,8 +3016,8 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.default = void 0;
 var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("XkwL"));
 var _Button = _interopRequireDefault(__webpack_require__("49+2"));
 var _warningDark = _interopRequireDefault(__webpack_require__("bbLk"));
@@ -3094,105 +3076,89 @@ var ConnectionResult = function ConnectionResult(_ref) {
     _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
     outDatedDataDays = _useState10[0],
     setOutDatedDataDays = _useState10[1];
-  var updateKonnector = /*#__PURE__*/function () {
-    var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-      var updatedConnection;
-      return _regenerator.default.wrap(function _callee$(_context) {
-        while (1) {
-          switch (_context.prev = _context.next) {
-            case 0:
-              setStatus('');
-              setLastExecutionDate('-');
-              setKonnectorError('');
-              updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
-                shouldLaunchKonnector: true,
-                isUpdating: true
-              });
-              dispatch((0, _global.updateFluidConnection)({
-                fluidType: currentFluidStatus.fluidType,
-                fluidConnection: updatedConnection
-              }));
-            case 5:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee);
+  var updateKonnector = function updateKonnector() {
+    setStatus('');
+    setLastExecutionDate('-');
+    setKonnectorError('');
+    var updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
+      shouldLaunchKonnector: true,
+      isUpdating: true
+    });
+    dispatch((0, _global.updateFluidConnection)({
+      fluidType: currentFluidStatus.fluidType,
+      fluidConnection: updatedConnection
     }));
-    return function updateKonnector() {
-      return _ref2.apply(this, arguments);
-    };
-  }();
-  var deleteAccountsAndTriggers = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
+  };
+  var deleteAccountsAndTriggers = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
     var accountService, triggerService, accounts, _iterator, _step, _account, trigger;
-    return _regenerator.default.wrap(function _callee2$(_context2) {
+    return _regenerator.default.wrap(function _callee$(_context) {
       while (1) {
-        switch (_context2.prev = _context2.next) {
+        switch (_context.prev = _context.next) {
           case 0:
             setDeleting(true);
-            _context2.prev = 1;
+            _context.prev = 1;
             if (!account) {
-              _context2.next = 33;
+              _context.next = 33;
               break;
             }
             accountService = new _account2.default(client);
             triggerService = new _triggers.default(client);
-            _context2.next = 7;
+            _context.next = 7;
             return accountService.getAccountsByType(account.account_type);
           case 7:
-            accounts = _context2.sent;
+            accounts = _context.sent;
             _iterator = _createForOfIteratorHelper(accounts);
-            _context2.prev = 9;
+            _context.prev = 9;
             _iterator.s();
           case 11:
             if ((_step = _iterator.n()).done) {
-              _context2.next = 23;
+              _context.next = 23;
               break;
             }
             _account = _step.value;
-            _context2.next = 15;
+            _context.next = 15;
             return triggerService.getTriggerForAccount(_account);
           case 15:
-            trigger = _context2.sent;
+            trigger = _context.sent;
             if (!trigger) {
-              _context2.next = 19;
+              _context.next = 19;
               break;
             }
-            _context2.next = 19;
+            _context.next = 19;
             return triggerService.deleteTrigger(trigger);
           case 19:
-            _context2.next = 21;
+            _context.next = 21;
             return accountService.deleteAccount(_account);
           case 21:
-            _context2.next = 11;
+            _context.next = 11;
             break;
           case 23:
-            _context2.next = 28;
+            _context.next = 28;
             break;
           case 25:
-            _context2.prev = 25;
-            _context2.t0 = _context2["catch"](9);
-            _iterator.e(_context2.t0);
+            _context.prev = 25;
+            _context.t0 = _context["catch"](9);
+            _iterator.e(_context.t0);
           case 28:
-            _context2.prev = 28;
+            _context.prev = 28;
             _iterator.f();
-            return _context2.finish(28);
+            return _context.finish(28);
           case 31:
-            _context2.next = 33;
+            _context.next = 33;
             return handleAccountDeletion();
           case 33:
-            _context2.next = 38;
+            _context.next = 38;
             break;
           case 35:
-            _context2.prev = 35;
-            _context2.t1 = _context2["catch"](1);
+            _context.prev = 35;
+            _context.t1 = _context["catch"](1);
             setDeleting(false);
           case 38:
           case "end":
-            return _context2.stop();
+            return _context.stop();
         }
       }
-    }, _callee2, null, [[1, 35], [9, 25, 28, 31]]);
+    }, _callee, null, [[1, 35], [9, 25, 28, 31]]);
   })), [account, client, handleAccountDeletion]);
   var isOutdated = (0, _react.useCallback)(function () {
     var dateChartService = new _dateChart.default();
@@ -3324,11 +3290,11 @@ var ConnectionResult = function ConnectionResult(_ref) {
     className: "btnPrimary"
   }, consentError ? t('konnector_form.button_oauth_reload') : t('konnector_form.button_update'))));
 };
-var DisplayKonnectorErrorState = function DisplayKonnectorErrorState(_ref4) {
-  var konnectorError = _ref4.konnectorError,
-    consentRelatedError = _ref4.consentRelatedError,
-    lastExecutionDate = _ref4.lastExecutionDate,
-    fluidConcerned = _ref4.fluidConcerned;
+var DisplayKonnectorErrorState = function DisplayKonnectorErrorState(_ref3) {
+  var konnectorError = _ref3.konnectorError,
+    consentRelatedError = _ref3.consentRelatedError,
+    lastExecutionDate = _ref3.lastExecutionDate,
+    fluidConcerned = _ref3.fluidConcerned;
   var _useI18n2 = (0, _I18n.useI18n)(),
     t = _useI18n2.t;
   return /*#__PURE__*/_react.default.createElement("div", {
@@ -3352,11 +3318,11 @@ var DisplayKonnectorErrorState = function DisplayKonnectorErrorState(_ref4) {
     className: "text-16-bold"
   }, lastExecutionDate.toLocaleString()))));
 };
-var DisplayDataOutdated = function DisplayDataOutdated(_ref5) {
-  var fluidStatus = _ref5.fluidStatus,
-    fluidType = _ref5.fluidType,
-    lastExecutionDate = _ref5.lastExecutionDate,
-    hasUpdatedToday = _ref5.hasUpdatedToday;
+var DisplayDataOutdated = function DisplayDataOutdated(_ref4) {
+  var fluidStatus = _ref4.fluidStatus,
+    fluidType = _ref4.fluidType,
+    lastExecutionDate = _ref4.lastExecutionDate,
+    hasUpdatedToday = _ref4.hasUpdatedToday;
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-caption text-16-normal"
   }, /*#__PURE__*/_react.default.createElement("div", {
@@ -3372,11 +3338,11 @@ var DisplayDataOutdated = function DisplayDataOutdated(_ref5) {
 };
 
 /** If user has already ran an update today, display a message about energy provider issue */
-var DisplayAlreadyUpdatedToday = function DisplayAlreadyUpdatedToday(_ref6) {
+var DisplayAlreadyUpdatedToday = function DisplayAlreadyUpdatedToday(_ref5) {
   var _fluidStatus$connecti;
-  var fluidStatus = _ref6.fluidStatus,
-    fluidType = _ref6.fluidType,
-    lastExecutionDate = _ref6.lastExecutionDate;
+  var fluidStatus = _ref5.fluidStatus,
+    fluidType = _ref5.fluidType,
+    lastExecutionDate = _ref5.lastExecutionDate;
   var _useI18n3 = (0, _I18n.useI18n)(),
     t = _useI18n3.t;
   var getFluidTypeKonnectorTranslation = function getFluidTypeKonnectorTranslation(fluidType) {
@@ -3413,9 +3379,9 @@ var DisplayManualUpdate = function DisplayManualUpdate() {
     className: "text-16-normal"
   }, t('konnector_form.resolve')));
 };
-var DisplayLastUpdateDate = function DisplayLastUpdateDate(_ref7) {
-  var lastExecutionDate = _ref7.lastExecutionDate,
-    fluidType = _ref7.fluidType;
+var DisplayLastUpdateDate = function DisplayLastUpdateDate(_ref6) {
+  var lastExecutionDate = _ref6.lastExecutionDate,
+    fluidType = _ref6.fluidType;
   var _useI18n5 = (0, _I18n.useI18n)(),
     t = _useI18n5.t;
   return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
@@ -3703,8 +3669,6 @@ Object.defineProperty(exports, "__esModule", {
   value: true
 });
 exports.default = void 0;
-var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("XkwL"));
 var _core = __webpack_require__("rMFn");
 var _notif_error = _interopRequireDefault(__webpack_require__("z26Q"));
@@ -3747,19 +3711,9 @@ var FluidButton = function FluidButton(_ref) {
     return false;
   }, [fluidStatus, fluidType, isMulti]);
   var iconType = (0, _picto.getNavPicto)(fluidType, isActive, isConnected());
-  var goToFluid = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-    return _regenerator.default.wrap(function _callee$(_context) {
-      while (1) {
-        switch (_context.prev = _context.next) {
-          case 0:
-            navigate(isMulti ? '/consumption' : "/consumption/".concat(fluidName));
-          case 1:
-          case "end":
-            return _context.stop();
-        }
-      }
-    }, _callee);
-  })), [navigate, isMulti, fluidName]);
+  var goToFluid = (0, _react.useCallback)(function () {
+    navigate(isMulti ? '/consumption' : "/consumption/".concat(fluidName));
+  }, [navigate, isMulti, fluidName]);
   var isFluidMaintenance = function isFluidMaintenance() {
     var _fluidStatus$fluidTyp;
     return (_fluidStatus$fluidTyp = fluidStatus[fluidType]) === null || _fluidStatus$fluidTyp === void 0 ? void 0 : _fluidStatus$fluidTyp.maintenance;
@@ -4374,54 +4328,39 @@ var FluidChart = function FluidChart(_ref) {
     setContainsHalfHourData = _useState2[1];
   var lowercaseTimeStep = _enums.TimeStep[currentTimeStep].toLowerCase();
   var lowercaseFluidType = (0, _utils.getFluidName)(fluidType);
-  var handleChangeSwitch = /*#__PURE__*/function () {
-    var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-      return _regenerator.default.wrap(function _callee$(_context) {
-        while (1) {
-          switch (_context.prev = _context.next) {
-            case 0:
-              dispatch((0, _chart.setShowCompare)(!showCompare));
-            case 1:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee);
-    }));
-    return function handleChangeSwitch() {
-      return _ref2.apply(this, arguments);
-    };
-  }();
+  var handleChangeSwitch = function handleChangeSwitch() {
+    dispatch((0, _chart.setShowCompare)(!showCompare));
+  };
   (0, _react.useEffect)(function () {
     var subscribed = true;
     function loadData() {
       return _loadData.apply(this, arguments);
     }
     function _loadData() {
-      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
+      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
         var consumptionService, halfHourData;
-        return _regenerator.default.wrap(function _callee2$(_context2) {
+        return _regenerator.default.wrap(function _callee$(_context) {
           while (1) {
-            switch (_context2.prev = _context2.next) {
+            switch (_context.prev = _context.next) {
               case 0:
                 if (!(fluidType === _enums.FluidType.ELECTRICITY)) {
-                  _context2.next = 6;
+                  _context.next = 6;
                   break;
                 }
                 consumptionService = new _consumption.default(client);
-                _context2.next = 4;
+                _context.next = 4;
                 return consumptionService.checkDoctypeEntries(_enums.FluidType.ELECTRICITY, _enums.TimeStep.HALF_AN_HOUR);
               case 4:
-                halfHourData = _context2.sent;
+                halfHourData = _context.sent;
                 if (halfHourData) {
                   setContainsHalfHourData(true);
                 }
               case 6:
               case "end":
-                return _context2.stop();
+                return _context.stop();
             }
           }
-        }, _callee2);
+        }, _callee);
       }));
       return _loadData.apply(this, arguments);
     }
diff --git a/app/ecolyo.837a0d69f4ab78282a86.js b/app/ecolyo.6910def27c3a3db196ab.js
similarity index 99%
rename from app/ecolyo.837a0d69f4ab78282a86.js
rename to app/ecolyo.6910def27c3a3db196ab.js
index 584844852d9e2c5c9608c6cc8c646aa3eff7211f..a297af985375123536adfdc0ef42b1f17b38c0e7 100644
--- a/app/ecolyo.837a0d69f4ab78282a86.js
+++ b/app/ecolyo.6910def27c3a3db196ab.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"3":"b1a5d3f3abe225f5c329","4":"a7e95d1c34383b6aa567","5":"a6852f7614d6d973097a","6":"29f85a0dbdcb4c98427d","7":"bdf008a91fc5ac465e58","8":"7f86157816222c0086ca","9":"f45e19d3c34ba67e355b","10":"fe3625578fa387c11975","11":"346fcb0fa7b2e3565ad3"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"3":"b1a5d3f3abe225f5c329","4":"a7e95d1c34383b6aa567","5":"c5c7d92a1d95428b1de7","6":"29f85a0dbdcb4c98427d","7":"bdf008a91fc5ac465e58","8":"7f86157816222c0086ca","9":"f45e19d3c34ba67e355b","10":"fe3625578fa387c11975","11":"346fcb0fa7b2e3565ad3"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -2216,25 +2216,9 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
   (0, _react.useEffect)(function () {
     var subscribed = true;
     function importIcon() {
-      return _importIcon.apply(this, arguments);
-    }
-    function _importIcon() {
-      _importIcon = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
-        return _regenerator.default.wrap(function _callee3$(_context3) {
-          while (1) {
-            switch (_context3.prev = _context3.next) {
-              case 0:
-                (0, _utils.importIconById)(userChallenge.id, 'challenge').then(function (icon) {
-                  icon ? setChallengeIcon(icon) : setChallengeIcon(_CHALLENGE.default);
-                });
-              case 1:
-              case "end":
-                return _context3.stop();
-            }
-          }
-        }, _callee3);
-      }));
-      return _importIcon.apply(this, arguments);
+      (0, _utils.importIconById)(userChallenge.id, 'challenge').then(function (icon) {
+        icon ? setChallengeIcon(icon) : setChallengeIcon(_CHALLENGE.default);
+      });
     }
     subscribed && importIcon();
     return function () {
@@ -2244,38 +2228,21 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
   (0, _react.useEffect)(function () {
     var subscribed = true;
     function setChallengeResult() {
-      return _setChallengeResult.apply(this, arguments);
-    }
-    function _setChallengeResult() {
-      _setChallengeResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
-        var isChallengeDone;
-        return _regenerator.default.wrap(function _callee5$(_context5) {
-          while (1) {
-            switch (_context5.prev = _context5.next) {
-              case 0:
-                isChallengeDone = challengeService.isChallengeDone(userChallenge, currentDataload);
-                setIsDone(isChallengeDone.isDone);
-              case 2:
-              case "end":
-                return _context5.stop();
-            }
-          }
-        }, _callee5);
-      }));
-      return _setChallengeResult.apply(this, arguments);
+      var isChallengeDone = challengeService.isChallengeDone(userChallenge, currentDataload);
+      setIsDone(isChallengeDone.isDone);
     }
     var unlockDuel = /*#__PURE__*/function () {
-      var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
+      var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
         var updatedChallenge;
-        return _regenerator.default.wrap(function _callee4$(_context4) {
+        return _regenerator.default.wrap(function _callee3$(_context3) {
           while (1) {
-            switch (_context4.prev = _context4.next) {
+            switch (_context3.prev = _context3.next) {
               case 0:
                 if (!(userChallenge.duel.state === _enums.UserDuelState.LOCKED && userChallenge.progress.actionProgress === 5 && userChallenge.progress.quizProgress === 5 && userChallenge.progress.explorationProgress === 5)) {
-                  _context4.next = 5;
+                  _context3.next = 5;
                   break;
                 }
-                _context4.next = 3;
+                _context3.next = 3;
                 return challengeService.updateUserChallenge(_objectSpread(_objectSpread({}, userChallenge), {}, {
                   progress: _objectSpread(_objectSpread({}, userChallenge.progress), {}, {
                     explorationProgress: 5,
@@ -2283,14 +2250,14 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
                   })
                 }), _enums.UserChallengeUpdateFlag.DUEL_UNLOCK);
               case 3:
-                updatedChallenge = _context4.sent;
+                updatedChallenge = _context3.sent;
                 dispatch((0, _challenge2.updateUserChallengeList)(updatedChallenge));
               case 5:
               case "end":
-                return _context4.stop();
+                return _context3.stop();
             }
           }
-        }, _callee4);
+        }, _callee3);
       }));
       return function unlockDuel() {
         return _ref4.apply(this, arguments);
@@ -3966,46 +3933,31 @@ var ChallengeCardDone = function ChallengeCardDone(_ref) {
     resultIcon = _useState2[0],
     setResultIcon = _useState2[1];
   var isSuccess = userChallenge.success === _enums.UserChallengeSuccess.WIN;
-  var goDuel = /*#__PURE__*/function () {
+  var goDuel = function goDuel() {
+    navigate('/challenges/duel?id=' + userChallenge.id);
+  };
+  var handleChallengeReset = /*#__PURE__*/function () {
     var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
+      var challengeService, updatedChallenge;
       return _regenerator.default.wrap(function _callee$(_context) {
         while (1) {
           switch (_context.prev = _context.next) {
-            case 0:
-              navigate('/challenges/duel?id=' + userChallenge.id);
-            case 1:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee);
-    }));
-    return function goDuel() {
-      return _ref2.apply(this, arguments);
-    };
-  }();
-  var handleChallengeReset = /*#__PURE__*/function () {
-    var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
-      var challengeService, updatedChallenge;
-      return _regenerator.default.wrap(function _callee2$(_context2) {
-        while (1) {
-          switch (_context2.prev = _context2.next) {
             case 0:
               challengeService = new _challenge.default(client);
-              _context2.next = 3;
+              _context.next = 3;
               return challengeService.updateUserChallenge(userChallenge, _enums.UserChallengeUpdateFlag.DUEL_RESET);
             case 3:
-              updatedChallenge = _context2.sent;
+              updatedChallenge = _context.sent;
               dispatch((0, _challenge2.updateUserChallengeList)(updatedChallenge));
             case 5:
             case "end":
-              return _context2.stop();
+              return _context.stop();
           }
         }
-      }, _callee2);
+      }, _callee);
     }));
     return function handleChallengeReset() {
-      return _ref3.apply(this, arguments);
+      return _ref2.apply(this, arguments);
     };
   }();
   (0, _react.useEffect)(function () {
@@ -4013,23 +3965,23 @@ var ChallengeCardDone = function ChallengeCardDone(_ref) {
       return _handleEcogestureIcon.apply(this, arguments);
     }
     function _handleEcogestureIcon() {
-      _handleEcogestureIcon = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
+      _handleEcogestureIcon = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
         var icon;
-        return _regenerator.default.wrap(function _callee3$(_context3) {
+        return _regenerator.default.wrap(function _callee2$(_context2) {
           while (1) {
-            switch (_context3.prev = _context3.next) {
+            switch (_context2.prev = _context2.next) {
               case 0:
-                _context3.next = 2;
+                _context2.next = 2;
                 return (0, _utils.importIconById)(userChallenge.id + '-' + Number(isSuccess), 'duelResult');
               case 2:
-                icon = _context3.sent;
+                icon = _context2.sent;
                 setResultIcon(icon || _default2.default);
               case 4:
               case "end":
-                return _context3.stop();
+                return _context2.stop();
             }
           }
-        }, _callee3);
+        }, _callee2);
       }));
       return _handleEcogestureIcon.apply(this, arguments);
     }
@@ -7268,23 +7220,25 @@ var MailService = /*#__PURE__*/function () {
               case 0:
                 _context.prev = 0;
                 jobCollection = client.collection('io.cozy.jobs');
-                jobCollection.create('sendmail', mailInfo);
-                _context.next = 12;
+                _context.next = 4;
+                return jobCollection.create('sendmail', mailInfo);
+              case 4:
+                _context.next = 13;
                 break;
-              case 5:
-                _context.prev = 5;
+              case 6:
+                _context.prev = 6;
                 _context.t0 = _context["catch"](0);
                 errorMessage = "Failed to send mail";
                 logStack('error', errorMessage);
                 _logger.default.error(errorMessage);
                 Sentry.captureException(_context.t0);
                 throw new Error(errorMessage);
-              case 12:
+              case 13:
               case "end":
                 return _context.stop();
             }
           }
-        }, _callee, null, [[0, 5]]);
+        }, _callee, null, [[0, 6]]);
       }));
       function SendMail(_x, _x2) {
         return _SendMail.apply(this, arguments);
@@ -7971,8 +7925,8 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.migrations = exports.SCHEMA_INITIAL_VERSION = exports.MIGRATION_RESULT_NOOP = exports.MIGRATION_RESULT_FAILED = exports.MIGRATION_RESULT_COMPLETE = void 0;
 var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
 var _doctypes = __webpack_require__("rVhO");
 var _enums = __webpack_require__("j0hM");
 var _luxon = __webpack_require__("1EDv");
@@ -7994,51 +7948,35 @@ var migrations = [{
   description: 'Removes old profileType artifacts from users database : \n - Oldest profileType is deleted \n - Removes insulation work form fields that were prone to errors \n - Changes area and outsideFacingWalls form field to strings \n - Changes updateDate values of all existing profileType to match "created_at" entry (former updateDate values got corrupted and hold no meanings).',
   releaseNotes: null,
   docTypes: _doctypes.PROFILETYPE_DOCTYPE,
-  run: function () {
-    var _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_client, docs) {
-      return _regenerator.default.wrap(function _callee$(_context) {
-        while (1) {
-          switch (_context.prev = _context.next) {
-            case 0:
-              docs.sort(function (a, b) {
-                var c = _luxon.DateTime.fromISO(a.cozyMetadata.createdAt, {
-                  zone: 'utc'
-                });
-                var d = _luxon.DateTime.fromISO(b.cozyMetadata.createdAt, {
-                  zone: 'utc'
-                });
-                return d.millisecond - c.millisecond;
-              });
-              if (docs[0].area === 100) {
-                docs[0].deleteAction = true;
-              }
-              return _context.abrupt("return", docs.map(function (doc) {
-                if (doc.individualInsulationWork.includes('window_replacement_and_wall_insulation')) {
-                  doc.individualInsulationWork = ['window_replacement', 'wall_insulation'];
-                }
-                if (doc.individualInsulationWork.includes('window_replacement_and_roof_insulation')) {
-                  doc.individualInsulationWork = ['window_replacement', 'roof_insulation'];
-                }
-                if (doc.individualInsulationWork.includes('window_replacement_and_roof_and_wall_insulation')) {
-                  doc.individualInsulationWork = ['window_replacement', 'roof_insulation', 'wall_insulation'];
-                }
-                doc.outsideFacingWalls = doc.outsideFacingWalls.toString();
-                doc.area = doc.area.toString();
-                doc.updateDate = doc.cozyMetadata.createdAt;
-                return doc;
-              }));
-            case 3:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee);
-    }));
-    function run(_x, _x2) {
-      return _run.apply(this, arguments);
+  run: function run(_client, docs) {
+    docs.sort(function (a, b) {
+      var c = _luxon.DateTime.fromISO(a.cozyMetadata.createdAt, {
+        zone: 'utc'
+      });
+      var d = _luxon.DateTime.fromISO(b.cozyMetadata.createdAt, {
+        zone: 'utc'
+      });
+      return d.millisecond - c.millisecond;
+    });
+    if (docs[0].area === 100) {
+      docs[0].deleteAction = true;
     }
-    return run;
-  }()
+    return docs.map(function (doc) {
+      if (doc.individualInsulationWork.includes('window_replacement_and_wall_insulation')) {
+        doc.individualInsulationWork = ['window_replacement', 'wall_insulation'];
+      }
+      if (doc.individualInsulationWork.includes('window_replacement_and_roof_insulation')) {
+        doc.individualInsulationWork = ['window_replacement', 'roof_insulation'];
+      }
+      if (doc.individualInsulationWork.includes('window_replacement_and_roof_and_wall_insulation')) {
+        doc.individualInsulationWork = ['window_replacement', 'roof_insulation', 'wall_insulation'];
+      }
+      doc.outsideFacingWalls = doc.outsideFacingWalls.toString();
+      doc.area = doc.area.toString();
+      doc.updateDate = doc.cozyMetadata.createdAt;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 1,
   targetSchemaVersion: 2,
@@ -8046,33 +7984,17 @@ var migrations = [{
   description: 'Removes old profileType and GCUApprovalDate from profile.',
   docTypes: _doctypes.PROFILE_DOCTYPE,
   releaseNotes: null,
-  run: function () {
-    var _run2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_client, docs) {
-      return _regenerator.default.wrap(function _callee2$(_context2) {
-        while (1) {
-          switch (_context2.prev = _context2.next) {
-            case 0:
-              return _context2.abrupt("return", docs.map(function (doc) {
-                if (doc.GCUApprovalDate) {
-                  delete doc.GCUApprovalDate;
-                }
-                if (doc.profileType) {
-                  delete doc.profileType;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context2.stop();
-          }
-        }
-      }, _callee2);
-    }));
-    function run(_x3, _x4) {
-      return _run2.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.GCUApprovalDate) {
+        delete doc.GCUApprovalDate;
+      }
+      if (doc.profileType) {
+        delete doc.profileType;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 2,
   targetSchemaVersion: 3,
@@ -8080,36 +8002,20 @@ var migrations = [{
   description: 'Updates userChallenges to make sure no quiz results are overflowing.',
   releaseNotes: null,
   docTypes: _doctypes.USERCHALLENGE_DOCTYPE,
-  run: function () {
-    var _run3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(_client, docs) {
-      return _regenerator.default.wrap(function _callee3$(_context3) {
-        while (1) {
-          switch (_context3.prev = _context3.next) {
-            case 0:
-              return _context3.abrupt("return", docs.map(function (doc) {
-                if (doc.quiz.result > 5) {
-                  doc.quiz.result = 5;
-                  doc.progress = {
-                    actionProgress: 5,
-                    explorationProgress: 5,
-                    quizProgress: 5
-                  };
-                  doc.quiz.state = _enums.UserQuizState.DONE;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context3.stop();
-          }
-        }
-      }, _callee3);
-    }));
-    function run(_x5, _x6) {
-      return _run3.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.quiz.result > 5) {
+        doc.quiz.result = 5;
+        doc.progress = {
+          actionProgress: 5,
+          explorationProgress: 5,
+          quizProgress: 5
+        };
+        doc.quiz.state = _enums.UserQuizState.DONE;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 3,
   targetSchemaVersion: 4,
@@ -8125,28 +8031,12 @@ var migrations = [{
     tag: 'day',
     limit: 120
   },
-  run: function () {
-    var _run4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(_client, docs) {
-      return _regenerator.default.wrap(function _callee4$(_context4) {
-        while (1) {
-          switch (_context4.prev = _context4.next) {
-            case 0:
-              return _context4.abrupt("return", docs.map(function (doc) {
-                doc.deleteAction = true;
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context4.stop();
-          }
-        }
-      }, _callee4);
-    }));
-    function run(_x7, _x8) {
-      return _run4.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      doc.deleteAction = true;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 4,
   targetSchemaVersion: 5,
@@ -8159,28 +8049,12 @@ var migrations = [{
     tag: 'month',
     limit: 4
   },
-  run: function () {
-    var _run5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_client, docs) {
-      return _regenerator.default.wrap(function _callee5$(_context5) {
-        while (1) {
-          switch (_context5.prev = _context5.next) {
-            case 0:
-              return _context5.abrupt("return", docs.map(function (doc) {
-                doc.deleteAction = true;
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context5.stop();
-          }
-        }
-      }, _callee5);
-    }));
-    function run(_x9, _x10) {
-      return _run5.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      doc.deleteAction = true;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 5,
   targetSchemaVersion: 6,
@@ -8193,28 +8067,12 @@ var migrations = [{
     tag: 'year',
     limit: 1
   },
-  run: function () {
-    var _run6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(_client, docs) {
-      return _regenerator.default.wrap(function _callee6$(_context6) {
-        while (1) {
-          switch (_context6.prev = _context6.next) {
-            case 0:
-              return _context6.abrupt("return", docs.map(function (doc) {
-                doc.deleteAction = true;
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context6.stop();
-          }
-        }
-      }, _callee6);
-    }));
-    function run(_x11, _x12) {
-      return _run6.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      doc.deleteAction = true;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 6,
   targetSchemaVersion: 7,
@@ -8222,39 +8080,23 @@ var migrations = [{
   description: 'Corrects individual insulation work field on profileType.',
   releaseNotes: null,
   docTypes: _doctypes.PROFILETYPE_DOCTYPE,
-  run: function () {
-    var _run7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(_client, docs) {
-      return _regenerator.default.wrap(function _callee7$(_context7) {
-        while (1) {
-          switch (_context7.prev = _context7.next) {
-            case 0:
-              return _context7.abrupt("return", docs.map(function (doc) {
-                if (!Array.isArray(doc.individualInsulationWork)) {
-                  doc.individualInsulationWork = [doc.individualInsulationWork];
-                }
-                if (doc.individualInsulationWork.includes('window_replacement_and_wall_insulation')) {
-                  doc.individualInsulationWork = ['window_replacement', 'wall_insulation'];
-                }
-                if (doc.individualInsulationWork.includes('window_replacement_and_roof_insulation')) {
-                  doc.individualInsulationWork = ['window_replacement', 'roof_insulation'];
-                }
-                if (doc.individualInsulationWork.includes('window_replacement_and_roof_and_wall_insulation')) {
-                  doc.individualInsulationWork = ['window_replacement', 'roof_insulation', 'wall_insulation'];
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context7.stop();
-          }
-        }
-      }, _callee7);
-    }));
-    function run(_x13, _x14) {
-      return _run7.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (!Array.isArray(doc.individualInsulationWork)) {
+        doc.individualInsulationWork = [doc.individualInsulationWork];
+      }
+      if (doc.individualInsulationWork.includes('window_replacement_and_wall_insulation')) {
+        doc.individualInsulationWork = ['window_replacement', 'wall_insulation'];
+      }
+      if (doc.individualInsulationWork.includes('window_replacement_and_roof_insulation')) {
+        doc.individualInsulationWork = ['window_replacement', 'roof_insulation'];
+      }
+      if (doc.individualInsulationWork.includes('window_replacement_and_roof_and_wall_insulation')) {
+        doc.individualInsulationWork = ['window_replacement', 'roof_insulation', 'wall_insulation'];
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 7,
   targetSchemaVersion: 8,
@@ -8262,40 +8104,23 @@ var migrations = [{
   description: 'ProfileTypes start now at the begining of the month, no duplications can exist over the same month.',
   releaseNotes: null,
   docTypes: _doctypes.PROFILETYPE_DOCTYPE,
-  run: function () {
-    var _run8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(_client, docs) {
-      var checkDate, i, dtStartOfMonth;
-      return _regenerator.default.wrap(function _callee8$(_context8) {
-        while (1) {
-          switch (_context8.prev = _context8.next) {
-            case 0:
-              checkDate = function _checkDate(d1, d2) {
-                var dtd1 = _luxon.DateTime.fromISO(d1);
-                var dtd2 = _luxon.DateTime.fromISO(d2);
-                return dtd1.year === dtd2.year && dtd1.month === dtd2.month;
-              };
-              for (i = 0; i < docs.length; i++) {
-                dtStartOfMonth = _luxon.DateTime.fromISO(docs[i].updateDate);
-                docs[i].updateDate = dtStartOfMonth.setZone('utc', {
-                  keepLocalTime: true
-                }).startOf('month');
-                if (docs[i + 1] && checkDate(docs[i].updateDate, docs[i + 1].updateDate)) {
-                  docs[i].deleteAction = true;
-                }
-              }
-              return _context8.abrupt("return", docs);
-            case 3:
-            case "end":
-              return _context8.stop();
-          }
-        }
-      }, _callee8);
-    }));
-    function run(_x15, _x16) {
-      return _run8.apply(this, arguments);
+  run: function run(_client, docs) {
+    function checkDate(d1, d2) {
+      var dtd1 = _luxon.DateTime.fromISO(d1);
+      var dtd2 = _luxon.DateTime.fromISO(d2);
+      return dtd1.year === dtd2.year && dtd1.month === dtd2.month;
+    }
+    for (var i = 0; i < docs.length; i++) {
+      var dtStartOfMonth = _luxon.DateTime.fromISO(docs[i].updateDate);
+      docs[i].updateDate = dtStartOfMonth.setZone('utc', {
+        keepLocalTime: true
+      }).startOf('month');
+      if (docs[i + 1] && checkDate(docs[i].updateDate, docs[i + 1].updateDate)) {
+        docs[i].deleteAction = true;
+      }
     }
-    return run;
-  }()
+    return docs;
+  }
 }, {
   baseSchemaVersion: 8,
   targetSchemaVersion: 9,
@@ -8305,25 +8130,9 @@ var migrations = [{
   docTypes: _doctypes.FLUIDSPRICES_DOCTYPE,
   isCreate: true,
   isDeprecated: true,
-  run: function () {
-    var _run9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
-      return _regenerator.default.wrap(function _callee9$(_context9) {
-        while (1) {
-          switch (_context9.prev = _context9.next) {
-            case 0:
-              return _context9.abrupt("return", []);
-            case 1:
-            case "end":
-              return _context9.stop();
-          }
-        }
-      }, _callee9);
-    }));
-    function run() {
-      return _run9.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run() {
+    return [];
+  }
 }, {
   baseSchemaVersion: 9,
   targetSchemaVersion: 10,
@@ -8331,30 +8140,14 @@ var migrations = [{
   description: "Profil now contains partnersIssueDate in order to handle partners' issue display",
   releaseNotes: null,
   docTypes: _doctypes.PROFILE_DOCTYPE,
-  run: function () {
-    var _run10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(_client, docs) {
-      return _regenerator.default.wrap(function _callee10$(_context10) {
-        while (1) {
-          switch (_context10.prev = _context10.next) {
-            case 0:
-              return _context10.abrupt("return", docs.map(function (doc) {
-                doc.partnersIssueDate = _luxon.DateTime.local().minus({
-                  day: 1
-                }).startOf('day');
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context10.stop();
-          }
-        }
-      }, _callee10);
-    }));
-    function run(_x17, _x18) {
-      return _run10.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      doc.partnersIssueDate = _luxon.DateTime.local().minus({
+        day: 1
+      }).startOf('day');
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 10,
   targetSchemaVersion: 11,
@@ -8362,34 +8155,18 @@ var migrations = [{
   description: 'Rename tutorial to onboaring in ecolyo profile, remove isLastTermAccepted',
   releaseNotes: null,
   docTypes: _doctypes.PROFILE_DOCTYPE,
-  run: function () {
-    var _run11 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(_client, docs) {
-      return _regenerator.default.wrap(function _callee11$(_context11) {
-        while (1) {
-          switch (_context11.prev = _context11.next) {
-            case 0:
-              return _context11.abrupt("return", docs.map(function (doc) {
-                if (doc.tutorial) {
-                  doc.onboarding = _objectSpread({}, doc.tutorial);
-                  delete doc.tutorial;
-                }
-                if (typeof doc.isLastTermAccepted != 'undefined') {
-                  delete doc.isLastTermAccepted;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context11.stop();
-          }
-        }
-      }, _callee11);
-    }));
-    function run(_x19, _x20) {
-      return _run11.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.tutorial) {
+        doc.onboarding = _objectSpread({}, doc.tutorial);
+        delete doc.tutorial;
+      }
+      if (typeof doc.isLastTermAccepted != 'undefined') {
+        delete doc.isLastTermAccepted;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 11,
   targetSchemaVersion: 12,
@@ -8402,44 +8179,27 @@ var migrations = [{
     tag: 'day',
     limit: 1000
   },
-  run: function () {
-    var _run12 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(_client, docs) {
-      var prevData;
-      return _regenerator.default.wrap(function _callee12$(_context12) {
-        while (1) {
-          switch (_context12.prev = _context12.next) {
-            case 0:
-              prevData = {
-                id: '',
-                day: 0,
-                hour: 0,
-                load: 0,
-                minute: 0,
-                month: 0,
-                year: 0
-              };
-              return _context12.abrupt("return", docs.map(function (doc) {
-                if (prevData.day === doc.day && prevData.month === doc.month && prevData.year === doc.year) {
-                  doc.deleteAction = true;
-                }
-                if (doc.price) {
-                  delete doc.price;
-                }
-                prevData = doc;
-                return doc;
-              }));
-            case 2:
-            case "end":
-              return _context12.stop();
-          }
-        }
-      }, _callee12);
-    }));
-    function run(_x21, _x22) {
-      return _run12.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    var prevData = {
+      id: '',
+      day: 0,
+      hour: 0,
+      load: 0,
+      minute: 0,
+      month: 0,
+      year: 0
+    };
+    return docs.map(function (doc) {
+      if (prevData.day === doc.day && prevData.month === doc.month && prevData.year === doc.year) {
+        doc.deleteAction = true;
+      }
+      if (doc.price) {
+        delete doc.price;
+      }
+      prevData = doc;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 12,
   targetSchemaVersion: 13,
@@ -8452,44 +8212,27 @@ var migrations = [{
     tag: 'day',
     limit: 1000
   },
-  run: function () {
-    var _run13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(_client, docs) {
-      var prevData;
-      return _regenerator.default.wrap(function _callee13$(_context13) {
-        while (1) {
-          switch (_context13.prev = _context13.next) {
-            case 0:
-              prevData = {
-                id: '',
-                day: 0,
-                hour: 0,
-                load: 0,
-                minute: 0,
-                month: 0,
-                year: 0
-              };
-              return _context13.abrupt("return", docs.map(function (doc) {
-                if (prevData.day === doc.day && prevData.month === doc.month && prevData.year === doc.year) {
-                  doc.deleteAction = true;
-                }
-                if (doc.price) {
-                  delete doc.price;
-                }
-                prevData = doc;
-                return doc;
-              }));
-            case 2:
-            case "end":
-              return _context13.stop();
-          }
-        }
-      }, _callee13);
-    }));
-    function run(_x23, _x24) {
-      return _run13.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    var prevData = {
+      id: '',
+      day: 0,
+      hour: 0,
+      load: 0,
+      minute: 0,
+      month: 0,
+      year: 0
+    };
+    return docs.map(function (doc) {
+      if (prevData.day === doc.day && prevData.month === doc.month && prevData.year === doc.year) {
+        doc.deleteAction = true;
+      }
+      if (doc.price) {
+        delete doc.price;
+      }
+      prevData = doc;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 13,
   targetSchemaVersion: 14,
@@ -8502,30 +8245,14 @@ var migrations = [{
     tag: 'month',
     limit: 17
   },
-  run: function () {
-    var _run14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(_client, docs) {
-      return _regenerator.default.wrap(function _callee14$(_context14) {
-        while (1) {
-          switch (_context14.prev = _context14.next) {
-            case 0:
-              return _context14.abrupt("return", docs.map(function (doc) {
-                if (doc.price) {
-                  delete doc.price;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context14.stop();
-          }
-        }
-      }, _callee14);
-    }));
-    function run(_x25, _x26) {
-      return _run14.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.price) {
+        delete doc.price;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 14,
   targetSchemaVersion: 15,
@@ -8538,30 +8265,14 @@ var migrations = [{
     tag: 'year',
     limit: 3
   },
-  run: function () {
-    var _run15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(_client, docs) {
-      return _regenerator.default.wrap(function _callee15$(_context15) {
-        while (1) {
-          switch (_context15.prev = _context15.next) {
-            case 0:
-              return _context15.abrupt("return", docs.map(function (doc) {
-                if (doc.price) {
-                  delete doc.price;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context15.stop();
-          }
-        }
-      }, _callee15);
-    }));
-    function run(_x27, _x28) {
-      return _run15.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.price) {
+        delete doc.price;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 15,
   targetSchemaVersion: 16,
@@ -8574,30 +8285,14 @@ var migrations = [{
     tag: 'month',
     limit: 17
   },
-  run: function () {
-    var _run16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(_client, docs) {
-      return _regenerator.default.wrap(function _callee16$(_context16) {
-        while (1) {
-          switch (_context16.prev = _context16.next) {
-            case 0:
-              return _context16.abrupt("return", docs.map(function (doc) {
-                if (doc.price) {
-                  delete doc.price;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context16.stop();
-          }
-        }
-      }, _callee16);
-    }));
-    function run(_x29, _x30) {
-      return _run16.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.price) {
+        delete doc.price;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 16,
   targetSchemaVersion: 17,
@@ -8610,30 +8305,14 @@ var migrations = [{
     tag: 'year',
     limit: 3
   },
-  run: function () {
-    var _run17 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(_client, docs) {
-      return _regenerator.default.wrap(function _callee17$(_context17) {
-        while (1) {
-          switch (_context17.prev = _context17.next) {
-            case 0:
-              return _context17.abrupt("return", docs.map(function (doc) {
-                if (doc.price) {
-                  delete doc.price;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context17.stop();
-          }
-        }
-      }, _callee17);
-    }));
-    function run(_x31, _x32) {
-      return _run17.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.price) {
+        delete doc.price;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 17,
   targetSchemaVersion: 18,
@@ -8642,25 +8321,9 @@ var migrations = [{
   releaseNotes: null,
   docTypes: _doctypes.FLUIDSPRICES_DOCTYPE,
   isDeprecated: true,
-  run: function () {
-    var _run18 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
-      return _regenerator.default.wrap(function _callee18$(_context18) {
-        while (1) {
-          switch (_context18.prev = _context18.next) {
-            case 0:
-              return _context18.abrupt("return", []);
-            case 1:
-            case "end":
-              return _context18.stop();
-          }
-        }
-      }, _callee18);
-    }));
-    function run() {
-      return _run18.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run() {
+    return [];
+  }
 }, {
   baseSchemaVersion: 18,
   targetSchemaVersion: 19,
@@ -8668,35 +8331,19 @@ var migrations = [{
   description: 'Replace old minCons with the new calculation',
   releaseNotes: null,
   docTypes: _doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE,
-  run: function () {
-    var _run19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(_client, docs) {
-      return _regenerator.default.wrap(function _callee19$(_context19) {
-        while (1) {
-          switch (_context19.prev = _context19.next) {
-            case 0:
-              return _context19.abrupt("return", docs.map(function (doc) {
-                if (doc.minLoad) {
-                  var numberofDaysInMonth = _luxon.DateTime.fromObject({
-                    month: doc.month,
-                    year: doc.year
-                  }).daysInMonth;
-                  doc.minimumLoad = doc.minLoad * 48 * numberofDaysInMonth;
-                  delete doc.minLoad;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context19.stop();
-          }
-        }
-      }, _callee19);
-    }));
-    function run(_x33, _x34) {
-      return _run19.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.minLoad) {
+        var numberofDaysInMonth = _luxon.DateTime.fromObject({
+          month: doc.month,
+          year: doc.year
+        }).daysInMonth;
+        doc.minimumLoad = doc.minLoad * 48 * numberofDaysInMonth;
+        delete doc.minLoad;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 19,
   targetSchemaVersion: 20,
@@ -8704,28 +8351,12 @@ var migrations = [{
   description: 'Empty fluidPrices db so it can be fetched with right format from remote doctype',
   releaseNotes: null,
   docTypes: _doctypes.FLUIDSPRICES_DOCTYPE,
-  run: function () {
-    var _run20 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(_client, docs) {
-      return _regenerator.default.wrap(function _callee20$(_context20) {
-        while (1) {
-          switch (_context20.prev = _context20.next) {
-            case 0:
-              return _context20.abrupt("return", docs.map(function (doc) {
-                doc.deleteAction = true;
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context20.stop();
-          }
-        }
-      }, _callee20);
-    }));
-    function run(_x35, _x36) {
-      return _run20.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      doc.deleteAction = true;
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 20,
   targetSchemaVersion: 21,
@@ -8737,25 +8368,9 @@ var migrations = [{
   },
   redirectLink: '/consumption/electricity',
   docTypes: '',
-  run: function () {
-    var _run21 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() {
-      return _regenerator.default.wrap(function _callee21$(_context21) {
-        while (1) {
-          switch (_context21.prev = _context21.next) {
-            case 0:
-              return _context21.abrupt("return", undefined);
-            case 1:
-            case "end":
-              return _context21.stop();
-          }
-        }
-      }, _callee21);
-    }));
-    function run() {
-      return _run21.apply(this, arguments);
-    }
-    return run;
-  }(),
+  run: function run() {
+    return undefined;
+  },
   isEmpty: true
 }, {
   baseSchemaVersion: 21,
@@ -8764,41 +8379,25 @@ var migrations = [{
   description: 'Profil now contains partnersIssueSeenDates in order to handle each partners issue date. Also removes previous partnersIssueDate',
   releaseNotes: null,
   docTypes: _doctypes.PROFILE_DOCTYPE,
-  run: function () {
-    var _run22 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(_client, docs) {
-      return _regenerator.default.wrap(function _callee22$(_context22) {
-        while (1) {
-          switch (_context22.prev = _context22.next) {
-            case 0:
-              return _context22.abrupt("return", docs.map(function (doc) {
-                doc.partnersIssueSeenDate = {
-                  enedis: _luxon.DateTime.local().minus({
-                    day: 1
-                  }).startOf('day'),
-                  egl: _luxon.DateTime.local().minus({
-                    day: 1
-                  }).startOf('day'),
-                  grdf: _luxon.DateTime.local().minus({
-                    day: 1
-                  }).startOf('day')
-                };
-                if (doc.partnersIssueDate) {
-                  delete doc.partnersIssueDate;
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context22.stop();
-          }
-        }
-      }, _callee22);
-    }));
-    function run(_x37, _x38) {
-      return _run22.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      doc.partnersIssueSeenDate = {
+        enedis: _luxon.DateTime.local().minus({
+          day: 1
+        }).startOf('day'),
+        egl: _luxon.DateTime.local().minus({
+          day: 1
+        }).startOf('day'),
+        grdf: _luxon.DateTime.local().minus({
+          day: 1
+        }).startOf('day')
+      };
+      if (doc.partnersIssueDate) {
+        delete doc.partnersIssueDate;
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 22,
   targetSchemaVersion: 23,
@@ -8806,30 +8405,14 @@ var migrations = [{
   description: 'Fix apartment typo',
   releaseNotes: null,
   docTypes: _doctypes.PROFILETYPE_DOCTYPE,
-  run: function () {
-    var _run23 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(_client, docs) {
-      return _regenerator.default.wrap(function _callee23$(_context23) {
-        while (1) {
-          switch (_context23.prev = _context23.next) {
-            case 0:
-              return _context23.abrupt("return", docs.map(function (doc) {
-                if (doc.housingType === 'appartment') {
-                  doc.housingType = 'apartment';
-                }
-                return doc;
-              }));
-            case 1:
-            case "end":
-              return _context23.stop();
-          }
-        }
-      }, _callee23);
-    }));
-    function run(_x39, _x40) {
-      return _run23.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, docs) {
+    return docs.map(function (doc) {
+      if (doc.housingType === 'appartment') {
+        doc.housingType = 'apartment';
+      }
+      return doc;
+    });
+  }
 }, {
   baseSchemaVersion: 23,
   targetSchemaVersion: 24,
@@ -8837,33 +8420,17 @@ var migrations = [{
   description: 'Add garden room & equipment type',
   releaseNotes: null,
   docTypes: _doctypes.ECOGESTURE_DOCTYPE,
-  run: function () {
-    var _run24 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(_client, ecogestures) {
-      return _regenerator.default.wrap(function _callee24$(_context24) {
-        while (1) {
-          switch (_context24.prev = _context24.next) {
-            case 0:
-              return _context24.abrupt("return", ecogestures.map(function (ecogesture) {
-                var ecData = _ecogestureData.default.find(function (ec) {
-                  return ec._id === ecogesture.id;
-                });
-                if (!ecData) return ecogesture;
-                ecogesture.room = ecData.room;
-                ecogesture.equipmentType = ecData.equipmentType;
-                return ecogesture;
-              }));
-            case 1:
-            case "end":
-              return _context24.stop();
-          }
-        }
-      }, _callee24);
-    }));
-    function run(_x41, _x42) {
-      return _run24.apply(this, arguments);
-    }
-    return run;
-  }()
+  run: function run(_client, ecogestures) {
+    return ecogestures.map(function (ecogesture) {
+      var ecData = _ecogestureData.default.find(function (ec) {
+        return ec._id === ecogesture.id;
+      });
+      if (!ecData) return ecogesture;
+      ecogesture.room = ecData.room;
+      ecogesture.equipmentType = ecData.equipmentType;
+      return ecogesture;
+    });
+  }
 }, {
   baseSchemaVersion: 24,
   targetSchemaVersion: 25,
@@ -8872,24 +8439,24 @@ var migrations = [{
   releaseNotes: null,
   docTypes: _doctypes.PROFILE_DOCTYPE,
   run: function () {
-    var _run25 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(_client, docs) {
-      return _regenerator.default.wrap(function _callee25$(_context25) {
+    var _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_client, docs) {
+      return _regenerator.default.wrap(function _callee$(_context) {
         while (1) {
-          switch (_context25.prev = _context25.next) {
+          switch (_context.prev = _context.next) {
             case 0:
-              return _context25.abrupt("return", docs.map(function (doc) {
+              return _context.abrupt("return", docs.map(function (doc) {
                 doc.isAnalysisReminderEnabled = true;
                 return doc;
               }));
             case 1:
             case "end":
-              return _context25.stop();
+              return _context.stop();
           }
         }
-      }, _callee25);
+      }, _callee);
     }));
-    function run(_x43, _x44) {
-      return _run25.apply(this, arguments);
+    function run(_x, _x2) {
+      return _run.apply(this, arguments);
     }
     return run;
   }()
@@ -9498,8 +9065,6 @@ Object.defineProperty(exports, "__esModule", {
   value: true
 });
 exports.default = void 0;
-var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("XkwL"));
 var _cozyClient = __webpack_require__("xEu0");
 var _enums = __webpack_require__("j0hM");
@@ -9524,32 +9089,16 @@ var useExploration = function useExploration() {
   (0, _react.useEffect)(function () {
     var subscribed = true;
     if (explorationID && (currentChallenge === null || currentChallenge === void 0 ? void 0 : currentChallenge.exploration.id) === explorationID && (currentChallenge === null || currentChallenge === void 0 ? void 0 : currentChallenge.exploration.state) === _enums.UserExplorationState.ONGOING) {
-      var checkExplo = /*#__PURE__*/function () {
-        var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-          var explorationService;
-          return _regenerator.default.wrap(function _callee$(_context) {
-            while (1) {
-              switch (_context.prev = _context.next) {
-                case 0:
-                  explorationService = new _exploration.default(client);
-                  explorationService.checkExploration(currentChallenge, explorationID).then(function (updatedChallenge) {
-                    dispatch((0, _challenge.updateUserChallengeList)(updatedChallenge));
-                    if (updatedChallenge.exploration.state === _enums.UserExplorationState.NOTIFICATION) {
-                      dispatch((0, _global.toggleChallengeExplorationNotification)(true));
-                    }
-                  });
-                  if (subscribed) setExplorationID('');
-                case 3:
-                case "end":
-                  return _context.stop();
-              }
-            }
-          }, _callee);
-        }));
-        return function checkExplo() {
-          return _ref.apply(this, arguments);
-        };
-      }();
+      var checkExplo = function checkExplo() {
+        var explorationService = new _exploration.default(client);
+        explorationService.checkExploration(currentChallenge, explorationID).then(function (updatedChallenge) {
+          dispatch((0, _challenge.updateUserChallengeList)(updatedChallenge));
+          if (updatedChallenge.exploration.state === _enums.UserExplorationState.NOTIFICATION) {
+            dispatch((0, _global.toggleChallengeExplorationNotification)(true));
+          }
+        });
+        if (subscribed) setExplorationID('');
+      };
       checkExplo();
     }
     return function () {
@@ -10893,92 +10442,61 @@ var SplashRoot = function SplashRoot(_ref) {
   }(), [client, dispatch]);
 
   /** Process customPopup and enable it if activated */
-  var processCustomPopup = (0, _react2.useCallback)( /*#__PURE__*/function () {
-    var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(profile, customPopup) {
-      return _regenerator.default.wrap(function _callee2$(_context2) {
-        while (1) {
-          switch (_context2.prev = _context2.next) {
-            case 0:
-              try {
-                if (today !== (profile === null || profile === void 0 ? void 0 : profile.customPopupDate.toISO()) && !(profile !== null && profile !== void 0 && profile.isFirstConnection)) {
-                  dispatch((0, _modal.setCustomPopup)(customPopup));
-                }
-              } catch (error) {
-                console.error('Error while checking customPopup informations');
-              }
-            case 1:
-            case "end":
-              return _context2.stop();
-          }
-        }
-      }, _callee2);
-    }));
-    return function (_x3, _x4) {
-      return _ref3.apply(this, arguments);
-    };
-  }(), [dispatch, today]);
+  var processCustomPopup = (0, _react2.useCallback)(function (profile, customPopup) {
+    try {
+      if (today !== (profile === null || profile === void 0 ? void 0 : profile.customPopupDate.toISO()) && !(profile !== null && profile !== void 0 && profile.isFirstConnection)) {
+        dispatch((0, _modal.setCustomPopup)(customPopup));
+      }
+    } catch (error) {
+      console.error('Error while checking customPopup informations');
+    }
+  }, [dispatch, today]);
 
   /**
    * For each fluid, set partnersIssue to true if notification is activated and seenDate < today
    */
-  var processPartnersStatus = (0, _react2.useCallback)( /*#__PURE__*/function () {
-    var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(profile, partnersInfo) {
-      var partnersIssue;
-      return _regenerator.default.wrap(function _callee3$(_context3) {
-        while (1) {
-          switch (_context3.prev = _context3.next) {
-            case 0:
-              try {
-                if (partnersInfo.notification_activated && !(profile !== null && profile !== void 0 && profile.isFirstConnection)) {
-                  partnersIssue = {
-                    enedis: getPartnerStatus(partnersInfo.enedis_failure, profile.partnersIssueSeenDate.enedis),
-                    egl: getPartnerStatus(partnersInfo.egl_failure, profile.partnersIssueSeenDate.egl),
-                    grdf: getPartnerStatus(partnersInfo.grdf_failure, profile.partnersIssueSeenDate.grdf)
-                  };
-                  if (Object.values(partnersIssue).some(function (issue) {
-                    return issue;
-                  })) {
-                    dispatch((0, _modal.openPartnersModal)(partnersIssue));
-                  }
-                }
-              } catch (error) {
-                console.error('Error while fetching partners informations');
-              }
-            case 1:
-            case "end":
-              return _context3.stop();
-          }
+  var processPartnersStatus = (0, _react2.useCallback)(function (profile, partnersInfo) {
+    try {
+      if (partnersInfo.notification_activated && !(profile !== null && profile !== void 0 && profile.isFirstConnection)) {
+        var partnersIssue = {
+          enedis: getPartnerStatus(partnersInfo.enedis_failure, profile.partnersIssueSeenDate.enedis),
+          egl: getPartnerStatus(partnersInfo.egl_failure, profile.partnersIssueSeenDate.egl),
+          grdf: getPartnerStatus(partnersInfo.grdf_failure, profile.partnersIssueSeenDate.grdf)
+        };
+        if (Object.values(partnersIssue).some(function (issue) {
+          return issue;
+        })) {
+          dispatch((0, _modal.openPartnersModal)(partnersIssue));
         }
-      }, _callee3);
-    }));
-    return function (_x5, _x6) {
-      return _ref4.apply(this, arguments);
-    };
-  }(), [dispatch, getPartnerStatus]);
+      }
+    } catch (error) {
+      console.error('Error while fetching partners informations');
+    }
+  }, [dispatch, getPartnerStatus]);
   var loadProfileType = (0, _react2.useCallback)( /*#__PURE__*/function () {
-    var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(profileType) {
+    var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(profileType) {
       var profileTypeEntityService, updatedProfileType;
-      return _regenerator.default.wrap(function _callee4$(_context4) {
+      return _regenerator.default.wrap(function _callee2$(_context2) {
         while (1) {
-          switch (_context4.prev = _context4.next) {
+          switch (_context2.prev = _context2.next) {
             case 0:
               profileTypeEntityService = new _profileTypeEntity.default(client);
-              _context4.next = 3;
+              _context2.next = 3;
               return profileTypeEntityService.saveProfileType(profileType);
             case 3:
-              updatedProfileType = _context4.sent;
+              updatedProfileType = _context2.sent;
               if (updatedProfileType) {
                 dispatch((0, _profileType.setProfileType)(updatedProfileType));
               }
             case 5:
             case "end":
-              return _context4.stop();
+              return _context2.stop();
           }
         }
-      }, _callee4);
+      }, _callee2);
     }));
-    return function (_x7) {
-      return _ref5.apply(this, arguments);
+    return function (_x3) {
+      return _ref3.apply(this, arguments);
     };
   }(), [client, dispatch]);
   (0, _react2.useEffect)(function () {
@@ -11002,257 +10520,221 @@ var SplashRoot = function SplashRoot(_ref) {
   (0, _react2.useEffect)(function () {
     var subscribed = true;
     function loadData() {
-      return _loadData.apply(this, arguments);
-    }
-    function _loadData() {
-      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
-        var startTime;
-        return _regenerator.default.wrap(function _callee8$(_context8) {
+      var startTime = performance.now();
+      Sentry.startSpan({
+        name: 'Initialize app'
+      }, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
+        var initializationService, customPopupService, partnersInfoService, ms, _yield$Promise$all, _yield$Promise$all2, termsStatus, profile, profileType, profileEcogesture, fluidStatus, migrationsResult, _yield$Promise$all3, _yield$Promise$all4, duelHash, quizHash, challengeHash, explorationHash, analysisResult, updatedProfile, lastDataDate, _iterator, _step, fluid, userChallengeList, _filteredCurrentOngoi, _filteredCurrentOngoi2, _filteredCurrentOngoi3, _filteredCurrentDuelC, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _challengeService$isC, isDone;
+        return _regenerator.default.wrap(function _callee4$(_context4) {
           while (1) {
-            switch (_context8.prev = _context8.next) {
+            switch (_context4.prev = _context4.next) {
               case 0:
-                startTime = performance.now();
-                Sentry.startSpan({
-                  name: 'Initialize app'
-                }, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
-                  var initializationService, customPopupService, partnersInfoService, ms, _yield$Promise$all, _yield$Promise$all2, termsStatus, profile, profileType, profileEcogesture, fluidStatus, migrationsResult, _yield$Promise$all3, _yield$Promise$all4, duelHash, quizHash, challengeHash, explorationHash, analysisResult, updatedProfile, lastDataDate, _iterator, _step, fluid, userChallengeList, _filteredCurrentOngoi, _filteredCurrentOngoi2, _filteredCurrentOngoi3, _filteredCurrentDuelC, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _challengeService$isC, isDone;
-                  return _regenerator.default.wrap(function _callee7$(_context7) {
-                    while (1) {
-                      switch (_context7.prev = _context7.next) {
-                        case 0:
-                          initializationService = new _initialization.default(client, setInitStepErrors);
-                          customPopupService = new _customPopup.default(client);
-                          partnersInfoService = new _partnersInfo.default(client);
-                          ms = new _migration2.MigrationService(client, setInitStepErrors);
-                          _context7.prev = 4;
-                          console.group('Initialization logs');
-                          // Run init steps in parallel
-                          setInitStep(_models.InitSteps.PROFILE);
-                          _context7.next = 9;
-                          return Promise.all([initializationService.initConsent(), initializationService.initFluidPrices(), initializationService.initProfile(), initializationService.initProfileType(), initializationService.initProfileEcogesture(), initializationService.initFluidStatus()]);
-                        case 9:
-                          _yield$Promise$all = _context7.sent;
-                          _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 6);
-                          termsStatus = _yield$Promise$all2[0];
-                          profile = _yield$Promise$all2[2];
-                          profileType = _yield$Promise$all2[3];
-                          profileEcogesture = _yield$Promise$all2[4];
-                          fluidStatus = _yield$Promise$all2[5];
-                          if (subscribed) dispatch((0, _global.updateTermsStatus)(termsStatus));
-                          setInitStep(_models.InitSteps.MIGRATION);
-                          _context7.next = 20;
-                          return ms.runMigrations(_migration.migrations);
-                        case 20:
-                          migrationsResult = _context7.sent;
-                          // Init last release notes when they exist
-                          dispatch((0, _global.showReleaseNotes)({
-                            notes: migrationsResult.notes,
-                            redirectLink: migrationsResult.redirectLink,
-                            show: migrationsResult.show
-                          }));
-                          if (!(subscribed && profile)) {
-                            _context7.next = 42;
-                            break;
-                          }
-                          setValidExploration(_enums.UserExplorationID.EXPLORATION007);
-                          setInitStep(_models.InitSteps.CHALLENGES);
-                          _context7.next = 27;
-                          return Promise.all([initializationService.initDuelEntity(profile.duelHash), initializationService.initQuizEntity(profile.quizHash), initializationService.initExplorationEntity(profile.challengeHash), initializationService.initChallengeEntity(profile.explorationHash), initializationService.initAnalysis(profile)]);
-                        case 27:
-                          _yield$Promise$all3 = _context7.sent;
-                          _yield$Promise$all4 = (0, _slicedToArray2.default)(_yield$Promise$all3, 5);
-                          duelHash = _yield$Promise$all4[0];
-                          quizHash = _yield$Promise$all4[1];
-                          challengeHash = _yield$Promise$all4[2];
-                          explorationHash = _yield$Promise$all4[3];
-                          analysisResult = _yield$Promise$all4[4];
-                          updatedProfile = {
-                            duelHash: duelHash,
-                            quizHash: quizHash,
-                            challengeHash: challengeHash,
-                            explorationHash: explorationHash,
-                            monthlyAnalysisDate: analysisResult.monthlyAnalysisDate,
-                            haveSeenLastAnalysis: analysisResult.haveSeenLastAnalysis
-                          };
-                          dispatch((0, _profile.updateProfile)(updatedProfile));
-                          dispatch((0, _analysis.setAnalysisMonth)(analysisResult.monthlyAnalysisDate));
-                          if (!profileType) {
-                            _context7.next = 40;
-                            break;
-                          }
-                          _context7.next = 40;
-                          return loadProfileType(profileType);
-                        case 40:
-                          if (profileEcogesture) {
-                            dispatch((0, _profileEcogesture.setProfileEcogesture)(profileEcogesture));
-                          }
-                          dispatch((0, _global.toggleAnalysisNotification)(!profile.haveSeenLastAnalysis));
-                        case 42:
-                          // Process fluids status
-                          if (subscribed) {
-                            dispatch((0, _global.setFluidStatus)(fluidStatus));
-                            lastDataDate = _luxon.DateTime.fromISO('0001-01-01');
-                            _iterator = _createForOfIteratorHelper(fluidStatus);
-                            try {
-                              for (_iterator.s(); !(_step = _iterator.n()).done;) {
-                                fluid = _step.value;
-                                if (fluid.lastDataDate && fluid.lastDataDate > lastDataDate) {
-                                  lastDataDate = fluid.lastDataDate;
-                                }
-                              }
-                            } catch (err) {
-                              _iterator.e(err);
-                            } finally {
-                              _iterator.f();
-                            }
-                          }
-                          // Init Challenge
-                          _context7.next = 45;
-                          return initializationService.initUserChallenges(fluidStatus);
-                        case 45:
-                          userChallengeList = _context7.sent;
-                          if (!subscribed) {
-                            _context7.next = 65;
-                            break;
-                          }
-                          dispatch((0, _challenge2.setUserChallengeList)(userChallengeList));
-                          filteredCurrentOngoingChallenge = userChallengeList.filter(function (challenge) {
-                            return challenge.state === _enums.UserChallengeState.ONGOING;
-                          }); // Set Notification if exploration state is notification
-                          if (((_filteredCurrentOngoi = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi === void 0 ? void 0 : _filteredCurrentOngoi.exploration.state) === _enums.UserExplorationState.NOTIFICATION) {
-                            dispatch((0, _global.toggleChallengeExplorationNotification)(true));
-                          }
-                          // Set action to notification if action is accomplished
-                          if (!(((_filteredCurrentOngoi2 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi2 === void 0 ? void 0 : _filteredCurrentOngoi2.action.state) === _enums.UserActionState.ONGOING)) {
-                            _context7.next = 56;
-                            break;
-                          }
-                          actionService = new _action.default(client);
-                          _context7.next = 54;
-                          return actionService.isActionDone(filteredCurrentOngoingChallenge[0]);
-                        case 54:
-                          updatedUserChallenge = _context7.sent;
-                          if (updatedUserChallenge) {
-                            dispatch((0, _challenge2.updateUserChallengeList)(updatedUserChallenge));
-                          }
-                        case 56:
-                          // Set Notification if action state is notification
-                          if (((_filteredCurrentOngoi3 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi3 === void 0 ? void 0 : _filteredCurrentOngoi3.action.state) === _enums.UserActionState.NOTIFICATION) {
-                            dispatch((0, _global.toggleChallengeActionNotification)(true));
-                          }
-                          filteredCurrentDuelChallenge = userChallengeList.filter(function (challenge) {
-                            return challenge.state === _enums.UserChallengeState.DUEL;
-                          });
-                          if (!(((_filteredCurrentDuelC = filteredCurrentDuelChallenge[0]) === null || _filteredCurrentDuelC === void 0 ? void 0 : _filteredCurrentDuelC.duel.state) === _enums.UserDuelState.ONGOING)) {
-                            _context7.next = 65;
-                            break;
-                          }
-                          _context7.next = 61;
-                          return initializationService.initDuelProgress(filteredCurrentDuelChallenge[0]);
-                        case 61:
-                          _yield$initialization = _context7.sent;
-                          _updatedUserChallenge = _yield$initialization.updatedUserChallenge;
-                          dataloads = _yield$initialization.dataloads;
-                          if (subscribed) {
-                            dispatch((0, _challenge2.setChallengeConsumption)({
-                              userChallenge: _updatedUserChallenge,
-                              currentDataload: dataloads
-                            }));
-                            // Check is duel is done and display notification
-                            challengeService = new _challenge.default(client);
-                            _challengeService$isC = challengeService.isChallengeDone(_updatedUserChallenge, dataloads), isDone = _challengeService$isC.isDone;
-                            dispatch((0, _global.toggleChallengeDuelNotification)(isDone));
-                          }
-                        case 65:
-                          /**
-                           * Load custom popup and partners info synchronously so these treatments don't block the loading
-                           */
-                          customPopupService.getCustomPopup().then( /*#__PURE__*/function () {
-                            var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(customPopup) {
-                              return _regenerator.default.wrap(function _callee5$(_context5) {
-                                while (1) {
-                                  switch (_context5.prev = _context5.next) {
-                                    case 0:
-                                      if (!(profile && customPopup)) {
-                                        _context5.next = 3;
-                                        break;
-                                      }
-                                      _context5.next = 3;
-                                      return processCustomPopup(profile, customPopup);
-                                    case 3:
-                                    case "end":
-                                      return _context5.stop();
-                                  }
-                                }
-                              }, _callee5);
-                            }));
-                            return function (_x8) {
-                              return _ref7.apply(this, arguments);
-                            };
-                          }());
-                          partnersInfoService.getPartnersInfo().then( /*#__PURE__*/function () {
-                            var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(partnersInfo) {
-                              return _regenerator.default.wrap(function _callee6$(_context6) {
-                                while (1) {
-                                  switch (_context6.prev = _context6.next) {
-                                    case 0:
-                                      if (!(profile && partnersInfo)) {
-                                        _context6.next = 5;
-                                        break;
-                                      }
-                                      _context6.next = 3;
-                                      return processFluidsStatus(profile, partnersInfo);
-                                    case 3:
-                                      _context6.next = 5;
-                                      return processPartnersStatus(profile, partnersInfo);
-                                    case 5:
-                                    case "end":
-                                      return _context6.stop();
-                                  }
-                                }
-                              }, _callee6);
-                            }));
-                            return function (_x9) {
-                              return _ref8.apply(this, arguments);
-                            };
-                          }());
-                          if (subscribed) {
-                            (0, _duration.logDuration)('[Initialization] Finished successfully !', startTime);
-                            setState(function (prev) {
-                              return _objectSpread(_objectSpread({}, prev), {}, {
-                                splashStart: true
-                              });
-                            });
-                          }
-                          _context7.next = 75;
-                          break;
-                        case 70:
-                          _context7.prev = 70;
-                          _context7.t0 = _context7["catch"](4);
-                          if (_context7.t0.message === 'Failed to fetch' && !initStepErrors) {
-                            setInitStepErrors(_models.InitStepsErrors.UNKNOWN_ERROR);
-                          }
-                          _logger.default.error("[Initialization] Error : ".concat(_context7.t0));
-                          Sentry.captureException(_context7.t0);
-                        case 75:
-                          _context7.prev = 75;
-                          console.groupEnd();
-                          return _context7.finish(75);
-                        case 78:
-                        case "end":
-                          return _context7.stop();
+                initializationService = new _initialization.default(client, setInitStepErrors);
+                customPopupService = new _customPopup.default(client);
+                partnersInfoService = new _partnersInfo.default(client);
+                ms = new _migration2.MigrationService(client, setInitStepErrors);
+                _context4.prev = 4;
+                console.group('Initialization logs');
+                // Run init steps in parallel
+                setInitStep(_models.InitSteps.PROFILE);
+                _context4.next = 9;
+                return Promise.all([initializationService.initConsent(), initializationService.initFluidPrices(), initializationService.initProfile(), initializationService.initProfileType(), initializationService.initProfileEcogesture(), initializationService.initFluidStatus()]);
+              case 9:
+                _yield$Promise$all = _context4.sent;
+                _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 6);
+                termsStatus = _yield$Promise$all2[0];
+                profile = _yield$Promise$all2[2];
+                profileType = _yield$Promise$all2[3];
+                profileEcogesture = _yield$Promise$all2[4];
+                fluidStatus = _yield$Promise$all2[5];
+                if (subscribed) dispatch((0, _global.updateTermsStatus)(termsStatus));
+                setInitStep(_models.InitSteps.MIGRATION);
+                _context4.next = 20;
+                return ms.runMigrations(_migration.migrations);
+              case 20:
+                migrationsResult = _context4.sent;
+                // Init last release notes when they exist
+                dispatch((0, _global.showReleaseNotes)({
+                  notes: migrationsResult.notes,
+                  redirectLink: migrationsResult.redirectLink,
+                  show: migrationsResult.show
+                }));
+                if (!(subscribed && profile)) {
+                  _context4.next = 42;
+                  break;
+                }
+                setValidExploration(_enums.UserExplorationID.EXPLORATION007);
+                setInitStep(_models.InitSteps.CHALLENGES);
+                _context4.next = 27;
+                return Promise.all([initializationService.initDuelEntity(profile.duelHash), initializationService.initQuizEntity(profile.quizHash), initializationService.initExplorationEntity(profile.challengeHash), initializationService.initChallengeEntity(profile.explorationHash), initializationService.initAnalysis(profile)]);
+              case 27:
+                _yield$Promise$all3 = _context4.sent;
+                _yield$Promise$all4 = (0, _slicedToArray2.default)(_yield$Promise$all3, 5);
+                duelHash = _yield$Promise$all4[0];
+                quizHash = _yield$Promise$all4[1];
+                challengeHash = _yield$Promise$all4[2];
+                explorationHash = _yield$Promise$all4[3];
+                analysisResult = _yield$Promise$all4[4];
+                updatedProfile = {
+                  duelHash: duelHash,
+                  quizHash: quizHash,
+                  challengeHash: challengeHash,
+                  explorationHash: explorationHash,
+                  monthlyAnalysisDate: analysisResult.monthlyAnalysisDate,
+                  haveSeenLastAnalysis: analysisResult.haveSeenLastAnalysis
+                };
+                dispatch((0, _profile.updateProfile)(updatedProfile));
+                dispatch((0, _analysis.setAnalysisMonth)(analysisResult.monthlyAnalysisDate));
+                if (!profileType) {
+                  _context4.next = 40;
+                  break;
+                }
+                _context4.next = 40;
+                return loadProfileType(profileType);
+              case 40:
+                if (profileEcogesture) {
+                  dispatch((0, _profileEcogesture.setProfileEcogesture)(profileEcogesture));
+                }
+                dispatch((0, _global.toggleAnalysisNotification)(!profile.haveSeenLastAnalysis));
+              case 42:
+                // Process fluids status
+                if (subscribed) {
+                  dispatch((0, _global.setFluidStatus)(fluidStatus));
+                  lastDataDate = _luxon.DateTime.fromISO('0001-01-01');
+                  _iterator = _createForOfIteratorHelper(fluidStatus);
+                  try {
+                    for (_iterator.s(); !(_step = _iterator.n()).done;) {
+                      fluid = _step.value;
+                      if (fluid.lastDataDate && fluid.lastDataDate > lastDataDate) {
+                        lastDataDate = fluid.lastDataDate;
+                      }
+                    }
+                  } catch (err) {
+                    _iterator.e(err);
+                  } finally {
+                    _iterator.f();
+                  }
+                }
+                // Init Challenge
+                _context4.next = 45;
+                return initializationService.initUserChallenges(fluidStatus);
+              case 45:
+                userChallengeList = _context4.sent;
+                if (!subscribed) {
+                  _context4.next = 65;
+                  break;
+                }
+                dispatch((0, _challenge2.setUserChallengeList)(userChallengeList));
+                filteredCurrentOngoingChallenge = userChallengeList.filter(function (challenge) {
+                  return challenge.state === _enums.UserChallengeState.ONGOING;
+                }); // Set Notification if exploration state is notification
+                if (((_filteredCurrentOngoi = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi === void 0 ? void 0 : _filteredCurrentOngoi.exploration.state) === _enums.UserExplorationState.NOTIFICATION) {
+                  dispatch((0, _global.toggleChallengeExplorationNotification)(true));
+                }
+                // Set action to notification if action is accomplished
+                if (!(((_filteredCurrentOngoi2 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi2 === void 0 ? void 0 : _filteredCurrentOngoi2.action.state) === _enums.UserActionState.ONGOING)) {
+                  _context4.next = 56;
+                  break;
+                }
+                actionService = new _action.default(client);
+                _context4.next = 54;
+                return actionService.isActionDone(filteredCurrentOngoingChallenge[0]);
+              case 54:
+                updatedUserChallenge = _context4.sent;
+                if (updatedUserChallenge) {
+                  dispatch((0, _challenge2.updateUserChallengeList)(updatedUserChallenge));
+                }
+              case 56:
+                // Set Notification if action state is notification
+                if (((_filteredCurrentOngoi3 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi3 === void 0 ? void 0 : _filteredCurrentOngoi3.action.state) === _enums.UserActionState.NOTIFICATION) {
+                  dispatch((0, _global.toggleChallengeActionNotification)(true));
+                }
+                filteredCurrentDuelChallenge = userChallengeList.filter(function (challenge) {
+                  return challenge.state === _enums.UserChallengeState.DUEL;
+                });
+                if (!(((_filteredCurrentDuelC = filteredCurrentDuelChallenge[0]) === null || _filteredCurrentDuelC === void 0 ? void 0 : _filteredCurrentDuelC.duel.state) === _enums.UserDuelState.ONGOING)) {
+                  _context4.next = 65;
+                  break;
+                }
+                _context4.next = 61;
+                return initializationService.initDuelProgress(filteredCurrentDuelChallenge[0]);
+              case 61:
+                _yield$initialization = _context4.sent;
+                _updatedUserChallenge = _yield$initialization.updatedUserChallenge;
+                dataloads = _yield$initialization.dataloads;
+                if (subscribed) {
+                  dispatch((0, _challenge2.setChallengeConsumption)({
+                    userChallenge: _updatedUserChallenge,
+                    currentDataload: dataloads
+                  }));
+                  // Check is duel is done and display notification
+                  challengeService = new _challenge.default(client);
+                  _challengeService$isC = challengeService.isChallengeDone(_updatedUserChallenge, dataloads), isDone = _challengeService$isC.isDone;
+                  dispatch((0, _global.toggleChallengeDuelNotification)(isDone));
+                }
+              case 65:
+                /**
+                 * Load custom popup and partners info synchronously so these treatments don't block the loading
+                 */
+                customPopupService.getCustomPopup().then(function (customPopup) {
+                  if (profile && customPopup) {
+                    processCustomPopup(profile, customPopup);
+                  }
+                });
+                partnersInfoService.getPartnersInfo().then( /*#__PURE__*/function () {
+                  var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(partnersInfo) {
+                    return _regenerator.default.wrap(function _callee3$(_context3) {
+                      while (1) {
+                        switch (_context3.prev = _context3.next) {
+                          case 0:
+                            if (!(profile && partnersInfo)) {
+                              _context3.next = 4;
+                              break;
+                            }
+                            _context3.next = 3;
+                            return processFluidsStatus(profile, partnersInfo);
+                          case 3:
+                            processPartnersStatus(profile, partnersInfo);
+                          case 4:
+                          case "end":
+                            return _context3.stop();
+                        }
                       }
-                    }
-                  }, _callee7, null, [[4, 70, 75, 78]]);
-                })));
-              case 2:
+                    }, _callee3);
+                  }));
+                  return function (_x4) {
+                    return _ref5.apply(this, arguments);
+                  };
+                }());
+                if (subscribed) {
+                  (0, _duration.logDuration)('[Initialization] Finished successfully !', startTime);
+                  setState(function (prev) {
+                    return _objectSpread(_objectSpread({}, prev), {}, {
+                      splashStart: true
+                    });
+                  });
+                }
+                _context4.next = 75;
+                break;
+              case 70:
+                _context4.prev = 70;
+                _context4.t0 = _context4["catch"](4);
+                if (_context4.t0.message === 'Failed to fetch' && !initStepErrors) {
+                  setInitStepErrors(_models.InitStepsErrors.UNKNOWN_ERROR);
+                }
+                _logger.default.error("[Initialization] Error : ".concat(_context4.t0));
+                Sentry.captureException(_context4.t0);
+              case 75:
+                _context4.prev = 75;
+                console.groupEnd();
+                return _context4.finish(75);
+              case 78:
               case "end":
-                return _context8.stop();
+                return _context4.stop();
             }
           }
-        }, _callee8);
-      }));
-      return _loadData.apply(this, arguments);
+        }, _callee4, null, [[4, 70, 75, 78]]);
+      })));
     }
     if (!initStepErrors) loadData();
     return function () {
@@ -12240,39 +11722,22 @@ var ChallengeService = /*#__PURE__*/function () {
     }
 
     /**
-     *
      * @param {ChallengeEntity} challenge - get all relations entities of a challenge
      */
   }, {
     key: "getRelationEntities",
-    value: function () {
-      var _getRelationEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(challenge) {
-        var duelEntityRelation, quizEntityRelation, explorationEntityRelation, result;
-        return _regenerator.default.wrap(function _callee$(_context) {
-          while (1) {
-            switch (_context.prev = _context.next) {
-              case 0:
-                duelEntityRelation = (0, _utils.getRelationship)(challenge, 'duel');
-                quizEntityRelation = (0, _utils.getRelationship)(challenge, 'quiz');
-                explorationEntityRelation = (0, _utils.getRelationshipHasMany)(challenge, 'exploration');
-                result = {
-                  duelEntityRelation: duelEntityRelation,
-                  quizEntityRelation: quizEntityRelation,
-                  explorationEntityRelation: explorationEntityRelation
-                };
-                return _context.abrupt("return", result);
-              case 5:
-              case "end":
-                return _context.stop();
-            }
-          }
-        }, _callee);
-      }));
-      function getRelationEntities(_x) {
-        return _getRelationEntities.apply(this, arguments);
-      }
-      return getRelationEntities;
-    }()
+    value: function getRelationEntities(challenge) {
+      var duelEntityRelation = (0, _utils.getRelationship)(challenge, 'duel');
+      var quizEntityRelation = (0, _utils.getRelationship)(challenge, 'quiz');
+      var explorationEntityRelation = (0, _utils.getRelationshipHasMany)(challenge, 'exploration');
+      var result = {
+        duelEntityRelation: duelEntityRelation,
+        quizEntityRelation: quizEntityRelation,
+        explorationEntityRelation: explorationEntityRelation
+      };
+      return result;
+    }
+
     /**
      * Get a UserChallenge from its Entity and verify the exploration if there is a condition and if it's verified
      */
@@ -12328,14 +11793,14 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "loopVerificationExplorationCondition",
     value: function () {
-      var _loopVerificationExplorationCondition = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(userChallenge, challengeEntityList, fluidStatus) {
+      var _loopVerificationExplorationCondition = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(userChallenge, challengeEntityList, fluidStatus) {
         var currentEntity, relationsArray, explorationService, updatedUserChallenge, _iterator2, _step2, relation, newExploEntity, newUserExplo, isConditionValid;
-        return _regenerator.default.wrap(function _callee2$(_context2) {
+        return _regenerator.default.wrap(function _callee$(_context) {
           while (1) {
-            switch (_context2.prev = _context2.next) {
+            switch (_context.prev = _context.next) {
               case 0:
                 if (!(userChallenge.exploration.state === _enums.UserExplorationState.UNLOCKED)) {
-                  _context2.next = 34;
+                  _context.next = 34;
                   break;
                 }
                 currentEntity = challengeEntityList.filter(function (challenge) {
@@ -12345,66 +11810,66 @@ var ChallengeService = /*#__PURE__*/function () {
                 explorationService = new _exploration.default(this._client);
                 updatedUserChallenge = _objectSpread({}, userChallenge);
                 _iterator2 = _createForOfIteratorHelper(relationsArray.data);
-                _context2.prev = 6;
+                _context.prev = 6;
                 _iterator2.s();
               case 8:
                 if ((_step2 = _iterator2.n()).done) {
-                  _context2.next = 25;
+                  _context.next = 25;
                   break;
                 }
                 relation = _step2.value;
-                _context2.next = 12;
+                _context.next = 12;
                 return explorationService.getExplorationEntityById(relation._id);
               case 12:
-                newExploEntity = _context2.sent;
+                newExploEntity = _context.sent;
                 newUserExplo = explorationService.parseExplorationEntityToUserExploration(newExploEntity);
                 if (!(newExploEntity.fluid_condition.length > 0)) {
-                  _context2.next = 21;
+                  _context.next = 21;
                   break;
                 }
                 isConditionValid = this.isExplorationConditionVerified(newExploEntity, fluidStatus);
                 if (!isConditionValid) {
-                  _context2.next = 19;
+                  _context.next = 19;
                   break;
                 }
                 updatedUserChallenge = _objectSpread(_objectSpread({}, updatedUserChallenge), {}, {
                   exploration: newUserExplo
                 });
-                return _context2.abrupt("break", 25);
+                return _context.abrupt("break", 25);
               case 19:
-                _context2.next = 23;
+                _context.next = 23;
                 break;
               case 21:
                 updatedUserChallenge = _objectSpread(_objectSpread({}, updatedUserChallenge), {}, {
                   exploration: newUserExplo
                 });
-                return _context2.abrupt("break", 25);
+                return _context.abrupt("break", 25);
               case 23:
-                _context2.next = 8;
+                _context.next = 8;
                 break;
               case 25:
-                _context2.next = 30;
+                _context.next = 30;
                 break;
               case 27:
-                _context2.prev = 27;
-                _context2.t0 = _context2["catch"](6);
-                _iterator2.e(_context2.t0);
+                _context.prev = 27;
+                _context.t0 = _context["catch"](6);
+                _iterator2.e(_context.t0);
               case 30:
-                _context2.prev = 30;
+                _context.prev = 30;
                 _iterator2.f();
-                return _context2.finish(30);
+                return _context.finish(30);
               case 33:
-                return _context2.abrupt("return", updatedUserChallenge);
+                return _context.abrupt("return", updatedUserChallenge);
               case 34:
-                return _context2.abrupt("return", userChallenge);
+                return _context.abrupt("return", userChallenge);
               case 35:
               case "end":
-                return _context2.stop();
+                return _context.stop();
             }
           }
-        }, _callee2, this, [[6, 27, 30, 33]]);
+        }, _callee, this, [[6, 27, 30, 33]]);
       }));
-      function loopVerificationExplorationCondition(_x2, _x3, _x4) {
+      function loopVerificationExplorationCondition(_x, _x2, _x3) {
         return _loopVerificationExplorationCondition.apply(this, arguments);
       }
       return loopVerificationExplorationCondition;
@@ -12415,163 +11880,143 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "buildUserChallengeList",
     value: function () {
-      var _buildUserChallengeList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(fluidStatus) {
+      var _buildUserChallengeList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fluidStatus) {
         var _this = this;
         var queryChallengeEntity, querySeasonEntityIncludeQuiz, querySeasonEntityIncludeExploration, _yield$this$_client$q, challengeEntityList, duelEntities, _yield$this$_client$q2, explorationEntities, _yield$this$_client$q3, quizEntities, userChallengeList, duelService, quizService, explorationService, buildList, _iterator3, _step3, challenge, relationEntities, duel, quiz, exploration, userChallenge, _iterator4, _step4, _loop;
-        return _regenerator.default.wrap(function _callee3$(_context4) {
+        return _regenerator.default.wrap(function _callee2$(_context3) {
           while (1) {
-            switch (_context4.prev = _context4.next) {
+            switch (_context3.prev = _context3.next) {
               case 0:
                 queryChallengeEntity = (0, _cozyClient.Q)(_doctypes.CHALLENGE_DOCTYPE).include(['duel']);
                 querySeasonEntityIncludeQuiz = (0, _cozyClient.Q)(_doctypes.CHALLENGE_DOCTYPE).include(['quiz']);
                 querySeasonEntityIncludeExploration = (0, _cozyClient.Q)(_doctypes.CHALLENGE_DOCTYPE).include(['exploration']);
-                _context4.next = 5;
+                _context3.next = 5;
                 return this._client.query(queryChallengeEntity);
               case 5:
-                _yield$this$_client$q = _context4.sent;
+                _yield$this$_client$q = _context3.sent;
                 challengeEntityList = _yield$this$_client$q.data;
                 duelEntities = _yield$this$_client$q.included;
-                _context4.next = 10;
+                _context3.next = 10;
                 return this._client.query(querySeasonEntityIncludeExploration);
               case 10:
-                _yield$this$_client$q2 = _context4.sent;
+                _yield$this$_client$q2 = _context3.sent;
                 explorationEntities = _yield$this$_client$q2.included;
-                _context4.next = 14;
+                _context3.next = 14;
                 return this._client.query(querySeasonEntityIncludeQuiz);
               case 14:
-                _yield$this$_client$q3 = _context4.sent;
+                _yield$this$_client$q3 = _context3.sent;
                 quizEntities = _yield$this$_client$q3.included;
-                _context4.next = 18;
+                _context3.next = 18;
                 return this.getAllUserChallengeEntities();
               case 18:
-                userChallengeList = _context4.sent;
+                userChallengeList = _context3.sent;
                 duelService = new _duel2.default(this._client);
                 quizService = new _quiz2.default(this._client);
                 explorationService = new _exploration.default(this._client);
                 buildList = []; // Case UserChallengeList is empty
                 if (!(challengeEntityList.length > 0 && userChallengeList.length === 0)) {
-                  _context4.next = 48;
+                  _context3.next = 29;
                   break;
                 }
                 _iterator3 = _createForOfIteratorHelper(challengeEntityList);
-                _context4.prev = 25;
-                _iterator3.s();
-              case 27:
-                if ((_step3 = _iterator3.n()).done) {
-                  _context4.next = 37;
-                  break;
-                }
-                challenge = _step3.value;
-                _context4.next = 31;
-                return this.getRelationEntities(challenge);
-              case 31:
-                relationEntities = _context4.sent;
-                duel = duelService.getDuelFromDuelEntities(duelEntities || [], relationEntities.duelEntityRelation._id);
-                quiz = quizService.getUserQuizFromQuizEntities(quizEntities || [], relationEntities.quizEntityRelation._id); // Only one exploration relation
-                if (relationEntities.explorationEntityRelation.length === 1) {
-                  exploration = explorationService.getUserExplorationFromExplorationEntities(explorationEntities || [], relationEntities.explorationEntityRelation[0]._id);
-                  userChallenge = this.parseChallengeEntityToUserChallenge(challenge, duel, quiz, exploration);
-                  buildList.push(userChallenge);
-                }
-                // Several explorations with fluid condition
-                else {
-                  this.processExploration(explorationEntities, relationEntities.explorationEntityRelation, challenge, duel, quiz, buildList, fluidStatus);
+                try {
+                  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
+                    challenge = _step3.value;
+                    relationEntities = this.getRelationEntities(challenge);
+                    duel = duelService.getDuelFromDuelEntities(duelEntities || [], relationEntities.duelEntityRelation._id);
+                    quiz = quizService.getUserQuizFromQuizEntities(quizEntities || [], relationEntities.quizEntityRelation._id); // Only one exploration relation
+                    if (relationEntities.explorationEntityRelation.length === 1) {
+                      exploration = explorationService.getUserExplorationFromExplorationEntities(explorationEntities || [], relationEntities.explorationEntityRelation[0]._id);
+                      userChallenge = this.parseChallengeEntityToUserChallenge(challenge, duel, quiz, exploration);
+                      buildList.push(userChallenge);
+                    }
+                    // Several explorations with fluid condition
+                    else {
+                      this.processExploration(explorationEntities, relationEntities.explorationEntityRelation, challenge, duel, quiz, buildList, fluidStatus);
+                    }
+                  }
+                } catch (err) {
+                  _iterator3.e(err);
+                } finally {
+                  _iterator3.f();
                 }
-              case 35:
-                _context4.next = 27;
-                break;
-              case 37:
-                _context4.next = 42;
-                break;
-              case 39:
-                _context4.prev = 39;
-                _context4.t0 = _context4["catch"](25);
-                _iterator3.e(_context4.t0);
-              case 42:
-                _context4.prev = 42;
-                _iterator3.f();
-                return _context4.finish(42);
-              case 45:
                 buildList = this.unLockCurrentUserChallenge(buildList);
-                _context4.next = 66;
+                _context3.next = 47;
                 break;
-              case 48:
+              case 29:
                 if (!(challengeEntityList.length > 0 && userChallengeList.length > 0)) {
-                  _context4.next = 66;
+                  _context3.next = 47;
                   break;
                 }
                 _iterator4 = _createForOfIteratorHelper(challengeEntityList);
-                _context4.prev = 50;
+                _context3.prev = 31;
                 _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
                   var challenge, userChallengeIndex, _userChallenge2, _relationEntities, _duel, _quiz;
-                  return _regenerator.default.wrap(function _loop$(_context3) {
+                  return _regenerator.default.wrap(function _loop$(_context2) {
                     while (1) {
-                      switch (_context3.prev = _context3.next) {
+                      switch (_context2.prev = _context2.next) {
                         case 0:
                           challenge = _step4.value;
                           userChallengeIndex = userChallengeList.findIndex(function (entity) {
                             return entity.id === challenge.id;
                           });
                           if (!(userChallengeIndex >= 0)) {
-                            _context3.next = 10;
+                            _context2.next = 10;
                             break;
                           }
                           _userChallenge2 = userChallengeList[userChallengeIndex];
-                          _context3.next = 6;
+                          _context2.next = 6;
                           return _this.loopVerificationExplorationCondition(_userChallenge2, challengeEntityList, fluidStatus);
                         case 6:
-                          _userChallenge2 = _context3.sent;
+                          _userChallenge2 = _context2.sent;
                           buildList.push(_userChallenge2);
-                          _context3.next = 16;
+                          _context2.next = 14;
                           break;
                         case 10:
-                          _context3.next = 12;
-                          return _this.getRelationEntities(challenge);
-                        case 12:
-                          _relationEntities = _context3.sent;
+                          _relationEntities = _this.getRelationEntities(challenge);
                           _duel = duelService.getDuelFromDuelEntities(duelEntities || [], _relationEntities.duelEntityRelation._id);
                           _quiz = quizService.getUserQuizFromQuizEntities(quizEntities || [], _relationEntities.quizEntityRelation._id);
                           _this.processExploration(explorationEntities, _relationEntities.explorationEntityRelation, challenge, _duel, _quiz, buildList, fluidStatus);
-                        case 16:
+                        case 14:
                         case "end":
-                          return _context3.stop();
+                          return _context2.stop();
                       }
                     }
                   }, _loop);
                 });
                 _iterator4.s();
-              case 53:
+              case 34:
                 if ((_step4 = _iterator4.n()).done) {
-                  _context4.next = 57;
+                  _context3.next = 38;
                   break;
                 }
-                return _context4.delegateYield(_loop(), "t1", 55);
-              case 55:
-                _context4.next = 53;
+                return _context3.delegateYield(_loop(), "t0", 36);
+              case 36:
+                _context3.next = 34;
                 break;
-              case 57:
-                _context4.next = 62;
+              case 38:
+                _context3.next = 43;
                 break;
-              case 59:
-                _context4.prev = 59;
-                _context4.t2 = _context4["catch"](50);
-                _iterator4.e(_context4.t2);
-              case 62:
-                _context4.prev = 62;
+              case 40:
+                _context3.prev = 40;
+                _context3.t1 = _context3["catch"](31);
+                _iterator4.e(_context3.t1);
+              case 43:
+                _context3.prev = 43;
                 _iterator4.f();
-                return _context4.finish(62);
-              case 65:
+                return _context3.finish(43);
+              case 46:
                 buildList = this.unLockCurrentUserChallenge(buildList);
-              case 66:
-                return _context4.abrupt("return", buildList);
-              case 67:
+              case 47:
+                return _context3.abrupt("return", buildList);
+              case 48:
               case "end":
-                return _context4.stop();
+                return _context3.stop();
             }
           }
-        }, _callee3, this, [[25, 39, 42, 45], [50, 59, 62, 65]]);
+        }, _callee2, this, [[31, 40, 43, 46]]);
       }));
-      function buildUserChallengeList(_x5) {
+      function buildUserChallengeList(_x4) {
         return _buildUserChallengeList.apply(this, arguments);
       }
       return buildUserChallengeList;
@@ -12582,25 +12027,25 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "getAllChallengeEntities",
     value: function () {
-      var _getAllChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
+      var _getAllChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
         var query, _yield$this$_client$q4, challenges;
-        return _regenerator.default.wrap(function _callee4$(_context5) {
+        return _regenerator.default.wrap(function _callee3$(_context4) {
           while (1) {
-            switch (_context5.prev = _context5.next) {
+            switch (_context4.prev = _context4.next) {
               case 0:
                 query = (0, _cozyClient.Q)(_doctypes.CHALLENGE_DOCTYPE);
-                _context5.next = 3;
+                _context4.next = 3;
                 return this._client.query(query);
               case 3:
-                _yield$this$_client$q4 = _context5.sent;
+                _yield$this$_client$q4 = _context4.sent;
                 challenges = _yield$this$_client$q4.data;
-                return _context5.abrupt("return", challenges);
+                return _context4.abrupt("return", challenges);
               case 6:
               case "end":
-                return _context5.stop();
+                return _context4.stop();
             }
           }
-        }, _callee4, this);
+        }, _callee3, this);
       }));
       function getAllChallengeEntities() {
         return _getAllChallengeEntities.apply(this, arguments);
@@ -12614,64 +12059,64 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "deleteAllChallengeEntities",
     value: function () {
-      var _deleteAllChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
+      var _deleteAllChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
         var challengeEntity, _iterator5, _step5, entity, errorMessage;
-        return _regenerator.default.wrap(function _callee5$(_context6) {
+        return _regenerator.default.wrap(function _callee4$(_context5) {
           while (1) {
-            switch (_context6.prev = _context6.next) {
+            switch (_context5.prev = _context5.next) {
               case 0:
-                _context6.prev = 0;
-                _context6.next = 3;
+                _context5.prev = 0;
+                _context5.next = 3;
                 return this.getAllChallengeEntities();
               case 3:
-                challengeEntity = _context6.sent;
+                challengeEntity = _context5.sent;
                 if (challengeEntity) {
-                  _context6.next = 6;
+                  _context5.next = 6;
                   break;
                 }
-                return _context6.abrupt("return", true);
+                return _context5.abrupt("return", true);
               case 6:
                 _iterator5 = _createForOfIteratorHelper(challengeEntity);
-                _context6.prev = 7;
+                _context5.prev = 7;
                 _iterator5.s();
               case 9:
                 if ((_step5 = _iterator5.n()).done) {
-                  _context6.next = 15;
+                  _context5.next = 15;
                   break;
                 }
                 entity = _step5.value;
-                _context6.next = 13;
+                _context5.next = 13;
                 return this._client.destroy(entity);
               case 13:
-                _context6.next = 9;
+                _context5.next = 9;
                 break;
               case 15:
-                _context6.next = 20;
+                _context5.next = 20;
                 break;
               case 17:
-                _context6.prev = 17;
-                _context6.t0 = _context6["catch"](7);
-                _iterator5.e(_context6.t0);
+                _context5.prev = 17;
+                _context5.t0 = _context5["catch"](7);
+                _iterator5.e(_context5.t0);
               case 20:
-                _context6.prev = 20;
+                _context5.prev = 20;
                 _iterator5.f();
-                return _context6.finish(20);
+                return _context5.finish(20);
               case 23:
-                return _context6.abrupt("return", true);
+                return _context5.abrupt("return", true);
               case 26:
-                _context6.prev = 26;
-                _context6.t1 = _context6["catch"](0);
-                errorMessage = "deleteAllChallengeEntities :".concat(JSON.stringify(_context6.t1));
+                _context5.prev = 26;
+                _context5.t1 = _context5["catch"](0);
+                errorMessage = "deleteAllChallengeEntities :".concat(JSON.stringify(_context5.t1));
                 logStack('error', errorMessage);
                 _logger.default.error(errorMessage);
-                Sentry.captureException(_context6.t1);
-                throw _context6.t1;
+                Sentry.captureException(_context5.t1);
+                throw _context5.t1;
               case 33:
               case "end":
-                return _context6.stop();
+                return _context5.stop();
             }
           }
-        }, _callee5, this, [[0, 26], [7, 17, 20, 23]]);
+        }, _callee4, this, [[0, 26], [7, 17, 20, 23]]);
       }));
       function deleteAllChallengeEntities() {
         return _deleteAllChallengeEntities.apply(this, arguments);
@@ -12684,29 +12129,29 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "getAllUserChallengeEntities",
     value: function () {
-      var _getAllUserChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
+      var _getAllUserChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
         var _this2 = this;
         var query, _yield$this$_client$q5, userChallengeEntities, userChallenges;
-        return _regenerator.default.wrap(function _callee6$(_context7) {
+        return _regenerator.default.wrap(function _callee5$(_context6) {
           while (1) {
-            switch (_context7.prev = _context7.next) {
+            switch (_context6.prev = _context6.next) {
               case 0:
                 query = (0, _cozyClient.Q)(_doctypes.USERCHALLENGE_DOCTYPE);
-                _context7.next = 3;
+                _context6.next = 3;
                 return this._client.query(query);
               case 3:
-                _yield$this$_client$q5 = _context7.sent;
+                _yield$this$_client$q5 = _context6.sent;
                 userChallengeEntities = _yield$this$_client$q5.data;
                 userChallenges = userChallengeEntities.map(function (userChallengeEntity) {
                   return _this2.parseUserChallengeEntityToUserChallenge(userChallengeEntity);
                 });
-                return _context7.abrupt("return", userChallenges);
+                return _context6.abrupt("return", userChallenges);
               case 7:
               case "end":
-                return _context7.stop();
+                return _context6.stop();
             }
           }
-        }, _callee6, this);
+        }, _callee5, this);
       }));
       function getAllUserChallengeEntities() {
         return _getAllUserChallengeEntities.apply(this, arguments);
@@ -12721,48 +12166,48 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "initChallengeDuelProgress",
     value: function () {
-      var _initChallengeDuelProgress = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(userChallenge) {
+      var _initChallengeDuelProgress = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(userChallenge) {
         var consumptionService, dataloads, userConsumption, _userChallenge, updatedUserChallenge, errorMessage;
-        return _regenerator.default.wrap(function _callee7$(_context8) {
+        return _regenerator.default.wrap(function _callee6$(_context7) {
           while (1) {
-            switch (_context8.prev = _context8.next) {
+            switch (_context7.prev = _context7.next) {
               case 0:
                 consumptionService = new _consumption.default(this._client);
-                _context8.prev = 1;
-                _context8.next = 4;
+                _context7.prev = 1;
+                _context7.next = 4;
                 return this.getUserChallengeDataload(userChallenge);
               case 4:
-                dataloads = _context8.sent;
+                dataloads = _context7.sent;
                 userConsumption = (0, _math.getRoundFloat)(consumptionService.calculatePerformanceIndicatorValue(dataloads));
                 _userChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   duel: _objectSpread(_objectSpread({}, userChallenge.duel), {}, {
                     userConsumption: userConsumption
                   })
                 });
-                _context8.next = 9;
+                _context7.next = 9;
                 return this.updateUserChallenge(_userChallenge, _enums.UserChallengeUpdateFlag.DUEL_CONSUMPTION);
               case 9:
-                updatedUserChallenge = _context8.sent;
-                return _context8.abrupt("return", {
+                updatedUserChallenge = _context7.sent;
+                return _context7.abrupt("return", {
                   updatedUserChallenge: updatedUserChallenge,
                   dataloads: dataloads
                 });
               case 13:
-                _context8.prev = 13;
-                _context8.t0 = _context8["catch"](1);
-                errorMessage = "Challenge service error on initChallengeDuelProgress: ".concat(JSON.stringify(_context8.t0));
+                _context7.prev = 13;
+                _context7.t0 = _context7["catch"](1);
+                errorMessage = "Challenge service error on initChallengeDuelProgress: ".concat(JSON.stringify(_context7.t0));
                 logStack('error', errorMessage);
                 _logger.default.error(errorMessage);
-                Sentry.captureException(_context8.t0);
-                throw _context8.t0;
+                Sentry.captureException(_context7.t0);
+                throw _context7.t0;
               case 20:
               case "end":
-                return _context8.stop();
+                return _context7.stop();
             }
           }
-        }, _callee7, this, [[1, 13]]);
+        }, _callee6, this, [[1, 13]]);
       }));
-      function initChallengeDuelProgress(_x6) {
+      function initChallengeDuelProgress(_x5) {
         return _initChallengeDuelProgress.apply(this, arguments);
       }
       return initChallengeDuelProgress;
@@ -12774,11 +12219,11 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "startUserChallenge",
     value: function () {
-      var _startUserChallenge = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(userChallenge) {
+      var _startUserChallenge = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(userChallenge) {
         var newChallenge, _yield$this$_client$c, updatedUserChallengeEntity, updatedUserChallenge, errorMessage;
-        return _regenerator.default.wrap(function _callee8$(_context9) {
+        return _regenerator.default.wrap(function _callee7$(_context8) {
           while (1) {
-            switch (_context9.prev = _context9.next) {
+            switch (_context8.prev = _context8.next) {
               case 0:
                 newChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   state: _enums.UserChallengeState.ONGOING,
@@ -12792,30 +12237,30 @@ var ChallengeService = /*#__PURE__*/function () {
                   }).startOf('day'),
                   success: _enums.UserChallengeSuccess.ONGOING
                 });
-                _context9.prev = 1;
-                _context9.next = 4;
+                _context8.prev = 1;
+                _context8.next = 4;
                 return this._client.create(_doctypes.USERCHALLENGE_DOCTYPE, newChallenge);
               case 4:
-                _yield$this$_client$c = _context9.sent;
+                _yield$this$_client$c = _context8.sent;
                 updatedUserChallengeEntity = _yield$this$_client$c.data;
                 updatedUserChallenge = this.parseUserChallengeEntityToUserChallenge(updatedUserChallengeEntity);
-                return _context9.abrupt("return", updatedUserChallenge);
+                return _context8.abrupt("return", updatedUserChallenge);
               case 10:
-                _context9.prev = 10;
-                _context9.t0 = _context9["catch"](1);
-                errorMessage = "Challenge service error on startUserChallenge: ".concat(JSON.stringify(_context9.t0));
+                _context8.prev = 10;
+                _context8.t0 = _context8["catch"](1);
+                errorMessage = "Challenge service error on startUserChallenge: ".concat(JSON.stringify(_context8.t0));
                 logStack('error', errorMessage);
                 _logger.default.error(errorMessage);
-                Sentry.captureException(_context9.t0);
-                throw _context9.t0;
+                Sentry.captureException(_context8.t0);
+                throw _context8.t0;
               case 17:
               case "end":
-                return _context9.stop();
+                return _context8.stop();
             }
           }
-        }, _callee8, this, [[1, 10]]);
+        }, _callee7, this, [[1, 10]]);
       }));
-      function startUserChallenge(_x7) {
+      function startUserChallenge(_x6) {
         return _startUserChallenge.apply(this, arguments);
       }
       return startUserChallenge;
@@ -12830,11 +12275,11 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "updateUserChallenge",
     value: function () {
-      var _updateUserChallenge = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(userChallenge, flag, quizWithUpdatedQuestions, fluidStatus, action) {
+      var _updateUserChallenge = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(userChallenge, flag, quizWithUpdatedQuestions, fluidStatus, action) {
         var updatedUserChallenge, updatedDuel, updatedQuiz, updatedExploration, updatedAction, duelService, quizService, explorationService, actionService, updateQuizProgress, userAction, _yield$this$_client$s, userChallengeEntity, result, errorMessage;
-        return _regenerator.default.wrap(function _callee9$(_context10) {
+        return _regenerator.default.wrap(function _callee8$(_context9) {
           while (1) {
-            switch (_context10.prev = _context10.next) {
+            switch (_context9.prev = _context9.next) {
               case 0:
                 updatedDuel = userChallenge.duel;
                 updatedQuiz = userChallenge.quiz;
@@ -12844,36 +12289,36 @@ var ChallengeService = /*#__PURE__*/function () {
                 quizService = new _quiz2.default(this._client);
                 explorationService = new _exploration.default(this._client);
                 actionService = new _action.default(this._client);
-                _context10.t0 = flag;
-                _context10.next = _context10.t0 === _enums.UserChallengeUpdateFlag.CHALLENGE ? 11 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_CONSUMPTION ? 11 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_UNLOCK ? 13 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_UPDATE_THRESHOLD ? 16 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_START ? 21 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_WIN ? 24 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_LOSS ? 27 : _context10.t0 === _enums.UserChallengeUpdateFlag.DUEL_RESET ? 30 : _context10.t0 === _enums.UserChallengeUpdateFlag.QUIZ_START ? 33 : _context10.t0 === _enums.UserChallengeUpdateFlag.QUIZ_DONE ? 36 : _context10.t0 === _enums.UserChallengeUpdateFlag.QUIZ_UPDATE ? 40 : _context10.t0 === _enums.UserChallengeUpdateFlag.QUIZ_RESET ? 42 : _context10.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_START ? 45 : _context10.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_UPDATE ? 48 : _context10.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_NOTIFICATION ? 51 : _context10.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_DONE ? 54 : _context10.t0 === _enums.UserChallengeUpdateFlag.ACTION_START ? 57 : _context10.t0 === _enums.UserChallengeUpdateFlag.ACTION_NOTIFICATION ? 61 : _context10.t0 === _enums.UserChallengeUpdateFlag.ACTION_DONE ? 64 : 67;
+                _context9.t0 = flag;
+                _context9.next = _context9.t0 === _enums.UserChallengeUpdateFlag.CHALLENGE ? 11 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_CONSUMPTION ? 11 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_UNLOCK ? 13 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_UPDATE_THRESHOLD ? 16 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_START ? 21 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_WIN ? 24 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_LOSS ? 27 : _context9.t0 === _enums.UserChallengeUpdateFlag.DUEL_RESET ? 30 : _context9.t0 === _enums.UserChallengeUpdateFlag.QUIZ_START ? 33 : _context9.t0 === _enums.UserChallengeUpdateFlag.QUIZ_DONE ? 36 : _context9.t0 === _enums.UserChallengeUpdateFlag.QUIZ_UPDATE ? 40 : _context9.t0 === _enums.UserChallengeUpdateFlag.QUIZ_RESET ? 42 : _context9.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_START ? 45 : _context9.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_UPDATE ? 48 : _context9.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_NOTIFICATION ? 51 : _context9.t0 === _enums.UserChallengeUpdateFlag.EXPLORATION_DONE ? 54 : _context9.t0 === _enums.UserChallengeUpdateFlag.ACTION_START ? 57 : _context9.t0 === _enums.UserChallengeUpdateFlag.ACTION_NOTIFICATION ? 61 : _context9.t0 === _enums.UserChallengeUpdateFlag.ACTION_DONE ? 64 : 67;
                 break;
               case 11:
                 updatedUserChallenge = userChallenge;
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 13:
                 updatedDuel = duelService.unlockUserDuel(userChallenge.duel);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   state: _enums.UserChallengeState.DUEL,
                   duel: updatedDuel
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 16:
-                _context10.next = 18;
+                _context9.next = 18;
                 return duelService.updateUserDuelThreshold(userChallenge.duel, fluidStatus);
               case 18:
-                updatedDuel = _context10.sent;
+                updatedDuel = _context9.sent;
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   state: _enums.UserChallengeState.DUEL,
                   duel: updatedDuel
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 21:
                 updatedDuel = duelService.startUserDuel(userChallenge.duel);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   state: _enums.UserChallengeState.DUEL,
                   duel: updatedDuel
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 24:
                 updatedDuel = duelService.endUserDuel(userChallenge.duel);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
@@ -12884,7 +12329,7 @@ var ChallengeService = /*#__PURE__*/function () {
                   }).startOf('day'),
                   success: _enums.UserChallengeSuccess.WIN
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 27:
                 updatedDuel = duelService.endUserDuel(userChallenge.duel);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
@@ -12895,7 +12340,7 @@ var ChallengeService = /*#__PURE__*/function () {
                   }).startOf('day'),
                   success: _enums.UserChallengeSuccess.LOST
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 30:
                 updatedDuel = duelService.resetUserDuel(userChallenge.duel);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
@@ -12903,13 +12348,13 @@ var ChallengeService = /*#__PURE__*/function () {
                   duel: updatedDuel,
                   success: _enums.UserChallengeSuccess.ONGOING
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 33:
                 updatedQuiz = quizService.startUserQuiz(userChallenge.quiz);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   quiz: updatedQuiz
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 36:
                 updateQuizProgress = Math.min(userChallenge.quiz.result, 5);
                 updatedQuiz = quizService.endUserQuiz(userChallenge.quiz);
@@ -12919,36 +12364,36 @@ var ChallengeService = /*#__PURE__*/function () {
                     quizProgress: updateQuizProgress
                   })
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 40:
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   quiz: quizWithUpdatedQuestions ? quizWithUpdatedQuestions : userChallenge.quiz
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 42:
                 updatedQuiz = quizService.resetUserQuiz(userChallenge.quiz);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   quiz: updatedQuiz
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 45:
                 updatedExploration = explorationService.startUserExploration(userChallenge.exploration);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   exploration: updatedExploration
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 48:
                 updatedExploration = explorationService.updateUserExploration(userChallenge.exploration);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   exploration: updatedExploration
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 51:
                 updatedExploration = explorationService.setNotificationUserExploration(userChallenge.exploration);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   exploration: updatedExploration
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 54:
                 updatedExploration = explorationService.endUserExploration(userChallenge.exploration);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
@@ -12957,7 +12402,7 @@ var ChallengeService = /*#__PURE__*/function () {
                     explorationProgress: updatedExploration.progress
                   })
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 57:
                 userAction = userChallenge.action;
                 if (action) {
@@ -12966,13 +12411,13 @@ var ChallengeService = /*#__PURE__*/function () {
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   action: userAction
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 61:
                 updatedAction = actionService.setNotificationAction(userChallenge.action);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
                   action: updatedAction
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 64:
                 updatedAction = actionService.endAction(userChallenge.action);
                 updatedUserChallenge = _objectSpread(_objectSpread({}, userChallenge), {}, {
@@ -12981,35 +12426,35 @@ var ChallengeService = /*#__PURE__*/function () {
                     actionProgress: 5
                   })
                 });
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 67:
                 updatedUserChallenge = userChallenge;
-                return _context10.abrupt("break", 69);
+                return _context9.abrupt("break", 69);
               case 69:
-                _context10.prev = 69;
-                _context10.next = 72;
+                _context9.prev = 69;
+                _context9.next = 72;
                 return this._client.save(updatedUserChallenge);
               case 72:
-                _yield$this$_client$s = _context10.sent;
+                _yield$this$_client$s = _context9.sent;
                 userChallengeEntity = _yield$this$_client$s.data;
                 result = this.parseUserChallengeEntityToUserChallenge(userChallengeEntity);
-                return _context10.abrupt("return", result);
+                return _context9.abrupt("return", result);
               case 78:
-                _context10.prev = 78;
-                _context10.t1 = _context10["catch"](69);
-                errorMessage = "Update user challenge error: ".concat(JSON.stringify(_context10.t1));
+                _context9.prev = 78;
+                _context9.t1 = _context9["catch"](69);
+                errorMessage = "Update user challenge error: ".concat(JSON.stringify(_context9.t1));
                 logStack('error', errorMessage);
                 _logger.default.error(errorMessage);
-                Sentry.captureException(_context10.t1);
-                throw _context10.t1;
+                Sentry.captureException(_context9.t1);
+                throw _context9.t1;
               case 85:
               case "end":
-                return _context10.stop();
+                return _context9.stop();
             }
           }
-        }, _callee9, this, [[69, 78]]);
+        }, _callee8, this, [[69, 78]]);
       }));
-      function updateUserChallenge(_x8, _x9, _x10, _x11, _x12) {
+      function updateUserChallenge(_x7, _x8, _x9, _x10, _x11) {
         return _updateUserChallenge.apply(this, arguments);
       }
       return updateUserChallenge;
@@ -13021,14 +12466,14 @@ var ChallengeService = /*#__PURE__*/function () {
   }, {
     key: "getUserChallengeDataload",
     value: function () {
-      var _getUserChallengeDataload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(userChallenge) {
+      var _getUserChallengeDataload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(userChallenge) {
         var consumptionService, timePeriod, dataChart;
-        return _regenerator.default.wrap(function _callee10$(_context11) {
+        return _regenerator.default.wrap(function _callee9$(_context10) {
           while (1) {
-            switch (_context11.prev = _context11.next) {
+            switch (_context10.prev = _context10.next) {
               case 0:
                 if (!userChallenge.duel.startDate) {
-                  _context11.next = 8;
+                  _context10.next = 8;
                   break;
                 }
                 consumptionService = new _consumption.default(this._client);
@@ -13038,7 +12483,7 @@ var ChallengeService = /*#__PURE__*/function () {
                     day: userChallenge.duel.duration.days - 1
                   })
                 };
-                _context11.next = 5;
+                _context10.next = 5;
                 return consumptionService.getGraphData({
                   timePeriod: timePeriod,
                   timeStep: _enums.TimeStep.DAY,
@@ -13046,22 +12491,22 @@ var ChallengeService = /*#__PURE__*/function () {
                   isHome: true
                 });
               case 5:
-                dataChart = _context11.sent;
+                dataChart = _context10.sent;
                 if (!dataChart) {
-                  _context11.next = 8;
+                  _context10.next = 8;
                   break;
                 }
-                return _context11.abrupt("return", dataChart.actualData);
+                return _context10.abrupt("return", dataChart.actualData);
               case 8:
-                return _context11.abrupt("return", []);
+                return _context10.abrupt("return", []);
               case 9:
               case "end":
-                return _context11.stop();
+                return _context10.stop();
             }
           }
-        }, _callee10, this);
+        }, _callee9, this);
       }));
-      function getUserChallengeDataload(_x13) {
+      function getUserChallengeDataload(_x12) {
         return _getUserChallengeDataload.apply(this, arguments);
       }
       return getUserChallengeDataload;
@@ -20970,8 +20415,6 @@ Object.defineProperty(exports, "__esModule", {
   value: true
 });
 exports.default = void 0;
-var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
 var _core = __webpack_require__("rMFn");
 var _close = _interopRequireDefault(__webpack_require__("lCJQ"));
 var _partners_consent = _interopRequireDefault(__webpack_require__("Sdda"));
@@ -20998,57 +20441,46 @@ var WelcomeModal = function WelcomeModal(_ref) {
   var dispatch = (0, _hooks.useAppDispatch)();
   var _useUserInstanceSetti = (0, _useUserInstanceSettings.default)(),
     instanceSettings = _useUserInstanceSetti.instanceSettings;
-  var setWelcomeModalViewed = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-    var mailService, username, environmentService, baseUrl, template, mailData;
-    return _regenerator.default.wrap(function _callee$(_context) {
-      while (1) {
-        switch (_context.prev = _context.next) {
-          case 0:
-            mailService = new _mail.default();
-            username = '';
-            if (instanceSettings.public_name !== '') {
-              username = instanceSettings.public_name;
-            }
-            environmentService = new _environment.default();
-            baseUrl = environmentService.getPublicURL();
-            template = welcomeTemplate({
-              title: 'Bienvenue !',
-              username: username,
-              baseUrl: baseUrl,
-              clientUrl: client.options.uri,
-              cloudImageUrl: baseUrl + '/assets/godCloud.png',
-              ecolyoPhoneImageUrl: baseUrl + '/assets/ecolyoPhone.png',
-              desktopImageUrl: baseUrl + '/assets/desktop.png',
-              androidImageUrl: baseUrl + '/assets/android.png',
-              appleImageUrl: baseUrl + '/assets/apple.png',
-              dotImageUrl: baseUrl + '/assets/dot.png',
-              starImageUrl: baseUrl + '/assets/star.png',
-              shareImageUrl: baseUrl + '/assets/share.png',
-              pwaAndroidUrl: baseUrl + '/assets/pwa_android.gif',
-              pwaIosUrl: baseUrl + '/assets/pwa_ios.gif'
-            });
-            mailData = {
-              mode: 'noreply',
-              subject: '[Ecolyo] - Bienvenue',
-              parts: [{
-                type: 'text/html',
-                body: mjml2html(template).html
-              }]
-            };
-            mailService.SendMail(client, mailData);
-            dispatch((0, _profile.updateProfile)({
-              isFirstConnection: false,
-              onboarding: {
-                isWelcomeSeen: true
-              }
-            }));
-          case 9:
-          case "end":
-            return _context.stop();
-        }
+  var setWelcomeModalViewed = (0, _react.useCallback)(function () {
+    var mailService = new _mail.default();
+    var username = '';
+    if (instanceSettings.public_name !== '') {
+      username = instanceSettings.public_name;
+    }
+    var environmentService = new _environment.default();
+    var baseUrl = environmentService.getPublicURL();
+    var template = welcomeTemplate({
+      title: 'Bienvenue !',
+      username: username,
+      baseUrl: baseUrl,
+      clientUrl: client.options.uri,
+      cloudImageUrl: baseUrl + '/assets/godCloud.png',
+      ecolyoPhoneImageUrl: baseUrl + '/assets/ecolyoPhone.png',
+      desktopImageUrl: baseUrl + '/assets/desktop.png',
+      androidImageUrl: baseUrl + '/assets/android.png',
+      appleImageUrl: baseUrl + '/assets/apple.png',
+      dotImageUrl: baseUrl + '/assets/dot.png',
+      starImageUrl: baseUrl + '/assets/star.png',
+      shareImageUrl: baseUrl + '/assets/share.png',
+      pwaAndroidUrl: baseUrl + '/assets/pwa_android.gif',
+      pwaIosUrl: baseUrl + '/assets/pwa_ios.gif'
+    });
+    var mailData = {
+      mode: 'noreply',
+      subject: '[Ecolyo] - Bienvenue',
+      parts: [{
+        type: 'text/html',
+        body: mjml2html(template).html
+      }]
+    };
+    mailService.SendMail(client, mailData);
+    dispatch((0, _profile.updateProfile)({
+      isFirstConnection: false,
+      onboarding: {
+        isWelcomeSeen: true
       }
-    }, _callee);
-  })), [client, dispatch, instanceSettings]);
+    }));
+  }, [client, dispatch, instanceSettings]);
   return /*#__PURE__*/_react.default.createElement(_core.Dialog, {
     open: open,
     onClose: setWelcomeModalViewed,
@@ -21892,9 +21324,12 @@ var AccountService = /*#__PURE__*/function () {
           while (1) {
             switch (_context.prev = _context.next) {
               case 0:
-                accountAttributes = (0, _accounts2.build)(konnector, authData);
-                return _context.abrupt("return", (0, _accounts.createAccount)(this._client, konnector, accountAttributes));
+                _context.next = 2;
+                return (0, _accounts2.build)(konnector, authData);
               case 2:
+                accountAttributes = _context.sent;
+                return _context.abrupt("return", (0, _accounts.createAccount)(this._client, konnector, accountAttributes));
+              case 4:
               case "end":
                 return _context.stop();
             }
@@ -22620,6 +22055,7 @@ function updateSchemaVersion(_x5, _x6) {
  * Save updated docs
  * @returns Promise<MigrationResult>
  */
+// eslint-disable-next-line @typescript-eslint/require-await
 function _updateSchemaVersion() {
   _updateSchemaVersion = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_client, targetSchemaVersion) {
     var query, data, doc;
@@ -22828,60 +22264,53 @@ function _migrate() {
               break;
             }
             result = migrationNoop();
-            _context8.next = 38;
+            _context8.next = 36;
             break;
           case 24:
             if (!(docToUpdate.length && !migration.isCreate)) {
-              _context8.next = 37;
+              _context8.next = 35;
               break;
             }
-            _context8.next = 27;
-            return migration.run(_client, docToUpdate);
-          case 27:
-            migratedDocs = _context8.sent;
+            migratedDocs = migration.run(_client, docToUpdate);
             if (!migratedDocs.length) {
-              _context8.next = 34;
+              _context8.next = 32;
               break;
             }
-            _context8.next = 31;
+            _context8.next = 29;
             return save(_client, migratedDocs);
-          case 31:
+          case 29:
             result = _context8.sent;
-            _context8.next = 35;
+            _context8.next = 33;
             break;
-          case 34:
+          case 32:
             result = migrationNoop();
-          case 35:
-            _context8.next = 38;
+          case 33:
+            _context8.next = 36;
             break;
-          case 37:
+          case 35:
             result = migrationNoop();
-          case 38:
-            if (!(migration.isCreate && !migration.isDeprecated)) {
-              _context8.next = 42;
-              break;
+          case 36:
+            // Handle new doctype creation
+            if (migration.isCreate && !migration.isDeprecated) {
+              migration.run(_client, docToUpdate);
+              result = {
+                type: _migration.MIGRATION_RESULT_COMPLETE,
+                errors: []
+              };
             }
-            _context8.next = 41;
-            return migration.run(_client, docToUpdate);
-          case 41:
-            result = {
-              type: _migration.MIGRATION_RESULT_COMPLETE,
-              errors: []
-            };
-          case 42:
             _context8.t2 = result.type;
-            _context8.next = _context8.t2 === _migration.MIGRATION_RESULT_NOOP ? 45 : _context8.t2 === _migration.MIGRATION_RESULT_COMPLETE ? 45 : 48;
+            _context8.next = _context8.t2 === _migration.MIGRATION_RESULT_NOOP ? 40 : _context8.t2 === _migration.MIGRATION_RESULT_COMPLETE ? 40 : 43;
             break;
-          case 45:
-            _context8.next = 47;
+          case 40:
+            _context8.next = 42;
             return updateSchemaVersion(_client, migration.targetSchemaVersion);
-          case 47:
-            return _context8.abrupt("break", 48);
-          case 48:
-            _context8.next = 55;
+          case 42:
+            return _context8.abrupt("break", 43);
+          case 43:
+            _context8.next = 50;
             break;
-          case 50:
-            _context8.prev = 50;
+          case 45:
+            _context8.prev = 45;
             _context8.t3 = _context8["catch"](16);
             console.error(_context8.t3);
             Sentry.captureException(_context8.t3);
@@ -22889,14 +22318,14 @@ function _migrate() {
               type: _migration.MIGRATION_RESULT_FAILED,
               errors: [_context8.t3.toString()]
             };
-          case 55:
+          case 50:
             return _context8.abrupt("return", result);
-          case 56:
+          case 51:
           case "end":
             return _context8.stop();
         }
       }
-    }, _callee8, null, [[16, 50]]);
+    }, _callee8, null, [[16, 45]]);
   }));
   return _migrate.apply(this, arguments);
 }
diff --git a/index.html b/index.html
index 79ca005e5bbf4a75a5e80d9ca3d01168e23d41d2..2899ce1744ed3e06eb13a0372d0b250fef549824 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212"><meta name="color-scheme" content="only dark">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.fc4bc60b9373625fdc9f.js"></script><script src="app/ecolyo.837a0d69f4ab78282a86.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212"><meta name="color-scheme" content="only dark">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.fc4bc60b9373625fdc9f.js"></script><script src="app/ecolyo.6910def27c3a3db196ab.js"></script></div></body></html>
\ No newline at end of file
diff --git a/services/aggregatorUsageEvents/ecolyo.js b/services/aggregatorUsageEvents/ecolyo.js
index b2d8915a8c91e51662b37fdd597f79ea48c53a44..0511bb12c9341ff04e45b4c618c4ad2b491efb7b 100644
--- a/services/aggregatorUsageEvents/ecolyo.js
+++ b/services/aggregatorUsageEvents/ecolyo.js
@@ -135702,7 +135702,7 @@ class AccountService {
     this._client = _client;
   }
   async createAccount(konnector, authData) {
-    const accountAttributes = (0, _accounts2.build)(konnector, authData);
+    const accountAttributes = await (0, _accounts2.build)(konnector, authData);
     return (0, _accounts.createAccount)(this._client, konnector, accountAttributes);
   }
   async getAccount(id) {
diff --git a/services/consumptionAlert/ecolyo.js b/services/consumptionAlert/ecolyo.js
index 2a5391865b6fc7b9afea4b627adf8c6378dc2a2b..8259c6282149605da8e0387c0e221bb5a2b6babd 100644
--- a/services/consumptionAlert/ecolyo.js
+++ b/services/consumptionAlert/ecolyo.js
@@ -182337,7 +182337,7 @@ class MailService {
   async SendMail(client, mailInfo) {
     try {
       const jobCollection = client.collection('io.cozy.jobs');
-      jobCollection.create('sendmail', mailInfo);
+      await jobCollection.create('sendmail', mailInfo);
     } catch (error) {
       const errorMessage = `Failed to send mail`;
       logStack('error', errorMessage);
diff --git a/services/enedisHalfHourMonthlyAnalysis/ecolyo.js b/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
index 6083bf5921e1a1d8dd5f59545d41142a9b310f11..1b70dea77cfa5ef665e2ab15347c1a9ae19b6227 100644
--- a/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
+++ b/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
@@ -135131,7 +135131,7 @@ class AccountService {
     this._client = _client;
   }
   async createAccount(konnector, authData) {
-    const accountAttributes = (0, _accounts2.build)(konnector, authData);
+    const accountAttributes = await (0, _accounts2.build)(konnector, authData);
     return (0, _accounts.createAccount)(this._client, konnector, accountAttributes);
   }
   async getAccount(id) {
diff --git a/services/monthlyReportNotification/ecolyo.js b/services/monthlyReportNotification/ecolyo.js
index fec813ac2369017bc59534d4e8f5274d625d8d3e..a3116bb562b4ff7081acb2b06d9f57bde03d24bf 100644
--- a/services/monthlyReportNotification/ecolyo.js
+++ b/services/monthlyReportNotification/ecolyo.js
@@ -182249,7 +182249,7 @@ class MailService {
   async SendMail(client, mailInfo) {
     try {
       const jobCollection = client.collection('io.cozy.jobs');
-      jobCollection.create('sendmail', mailInfo);
+      await jobCollection.create('sendmail', mailInfo);
     } catch (error) {
       const errorMessage = `Failed to send mail`;
       logStack('error', errorMessage);