diff --git a/3/ecolyo.0e7e4206658f5e4b1eff.js b/3/ecolyo.f2453cca7662654fa54a.js
similarity index 99%
rename from 3/ecolyo.0e7e4206658f5e4b1eff.js
rename to 3/ecolyo.f2453cca7662654fa54a.js
index 3123e1b1791cb3e8ebaecef7f56d05b35dcf2100..02ff1eaf467e19d0807b9995457bd96f281717d8 100644
--- a/3/ecolyo.0e7e4206658f5e4b1eff.js
+++ b/3/ecolyo.f2453cca7662654fa54a.js
@@ -1210,6 +1210,8 @@ var _chart = __webpack_require__("U6AS");
 
 var _global = __webpack_require__("c4IZ");
 
+var _modal = __webpack_require__("lSJB");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("xz5R");
@@ -1247,7 +1249,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
       fluidStatus = _useSelector$global.fluidStatus,
       releaseNotes = _useSelector$global.releaseNotes,
       customPopupModal = _useSelector$global.customPopupModal,
-      openPartnersIssueModal = _useSelector$global.openPartnersIssueModal;
+      partnersIssueModal = _useSelector.modal.partnersIssueModal;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -1337,7 +1339,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
               updatedProfile = _context.sent;
 
               if (updatedProfile) {
-                dispatch((0, _global.setPartnersIssue)(_objectSpread(_objectSpread({}, openPartnersIssueModal), {}, (0, _defineProperty2.default)({}, getPartnerKey(fluidType), false))));
+                dispatch((0, _modal.openPartnersModal)(_objectSpread(_objectSpread({}, partnersIssueModal), {}, (0, _defineProperty2.default)({}, getPartnerKey(fluidType), false))));
               }
 
             case 9:
@@ -1351,7 +1353,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
     return function (_x) {
       return _ref2.apply(this, arguments);
     };
-  }(), [client, dispatch, openPartnersIssueModal]);
+  }(), [client, dispatch, partnersIssueModal]);
 
   var handleCloseCustomPopupModal = /*#__PURE__*/function () {
     var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
@@ -1480,7 +1482,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
     return /*#__PURE__*/_react.default.createElement(_PartnerIssueModal.default, {
       key: issuedFluid.fluidType,
       issuedFluid: issuedFluid,
-      open: openPartnersIssueModal[getPartnerKey(issuedFluid.fluidType)],
+      open: partnersIssueModal[getPartnerKey(issuedFluid.fluidType)],
       handleCloseClick: handleClosePartnerIssueModal
     });
   }), /*#__PURE__*/_react.default.createElement(_CustomPopupModal.default, {
@@ -1975,7 +1977,7 @@ var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _fluid2 = _interopRequireDefault(__webpack_require__("z34f"));
 
-var _partnersInfo = _interopRequireDefault(__webpack_require__("4zrG"));
+var _partnersInfo2 = _interopRequireDefault(__webpack_require__("4zrG"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
@@ -2026,7 +2028,8 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     return state.ecolyo.global;
   }),
       statusArray = _useSelector.fluidStatus,
-      shouldRefreshConsent = _useSelector.shouldRefreshConsent;
+      shouldRefreshConsent = _useSelector.shouldRefreshConsent,
+      partnersInfo = _useSelector.partnersInfo;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -2072,7 +2075,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     return new _fluid2.default(client);
   }, [client]);
   var partnersInfoService = (0, _react.useMemo)(function () {
-    return new _partnersInfo.default(client);
+    return new _partnersInfo2.default(client);
   }, [client]);
   var lastDataDate = fluidType !== _fluid.FluidType.MULTIFLUID && statusArray[fluidType].lastDataDate ? statusArray[fluidType].lastDataDate.toLocaleString() + fluidType : fluidType;
   var iconType = (0, _picto.getParamPicto)(fluidStatus.fluidType);
@@ -2166,7 +2169,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     }, _callee2);
   })), [client, dispatch, currentChallenge]);
   var handleAccountDeletion = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
-    var _updatedFluidStatus, partnersInfo, _updatedFluidStatus2;
+    var _updatedFluidStatus, _partnersInfo, _updatedFluidStatus2;
 
     return _regenerator.default.wrap(function _callee3$(_context3) {
       while (1) {
@@ -2191,9 +2194,9 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
             return partnersInfoService.getPartnersInfo();
 
           case 8:
-            partnersInfo = _context3.sent;
+            _partnersInfo = _context3.sent;
             _context3.next = 11;
-            return fluidService.getFluidStatus(partnersInfo);
+            return fluidService.getFluidStatus(_partnersInfo);
 
           case 11:
             _updatedFluidStatus2 = _context3.sent;
@@ -2211,7 +2214,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
   })), [refreshChallengeState, updateGlobalFluidStatus, setActive, partnersInfoService, fluidService, dispatch]);
   var handleConnectionEnd = (0, _react.useCallback)( /*#__PURE__*/function () {
     var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(isSuccess) {
-      var auth, accountService, partnersInfo, _updatedFluidStatus;
+      var auth, accountService, _updatedFluidStatus3;
 
       return _regenerator.default.wrap(function _callee4$(_context4) {
         while (1) {
@@ -2240,7 +2243,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
               return handleAccountDeletion();
 
             case 7:
-              _context4.next = 20;
+              _context4.next = 17;
               break;
 
             case 9:
@@ -2254,30 +2257,25 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
 
             case 12:
               if (!(updatedFluidStatus.length > 0)) {
-                _context4.next = 20;
+                _context4.next = 17;
                 break;
               }
 
               _context4.next = 15;
-              return partnersInfoService.getPartnersInfo();
-
-            case 15:
-              partnersInfo = _context4.sent;
-              _context4.next = 18;
               return fluidService.getFluidStatus(partnersInfo);
 
-            case 18:
-              _updatedFluidStatus = _context4.sent;
-              dispatch((0, _global.setFluidStatus)(_updatedFluidStatus));
+            case 15:
+              _updatedFluidStatus3 = _context4.sent;
+              dispatch((0, _global.setFluidStatus)(_updatedFluidStatus3));
 
-            case 20:
+            case 17:
               setActive(false);
               setOpenModal(false); // TODO null state seems to be read before modal closing and display a success icon in modal
 
               setKonnectorState(null);
               setKonnectorErrorDescription(null);
 
-            case 24:
+            case 21:
             case "end":
               return _context4.stop();
           }
diff --git a/app/ecolyo.c6f769f46df3b9432805.js b/app/ecolyo.ae4d817db51322a0a71b.js
similarity index 99%
rename from app/ecolyo.c6f769f46df3b9432805.js
rename to app/ecolyo.ae4d817db51322a0a71b.js
index 191f14ae0284c063ffd4fde08e76e4b56b0ee5bd..8650bffa5453c3ef270418aad96b1e0385acf3e6 100644
--- a/app/ecolyo.c6f769f46df3b9432805.js
+++ b/app/ecolyo.ae4d817db51322a0a71b.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"428a0f6e105059ec41cb","3":"0e7e4206658f5e4b1eff","4":"b36c04845ac8ccdfd8e2","5":"4c1d9ae558d5214ade9c","6":"8a0fb54d4ad7a438bb12","7":"403585665c5e67c3d156","8":"8763ca2635d712139819","9":"9ad8f654859d6a5af353"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"428a0f6e105059ec41cb","3":"f2453cca7662654fa54a","4":"b36c04845ac8ccdfd8e2","5":"4c1d9ae558d5214ade9c","6":"8a0fb54d4ad7a438bb12","7":"403585665c5e67c3d156","8":"8763ca2635d712139819","9":"9ad8f654859d6a5af353"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -1685,6 +1685,8 @@ var _chart = __webpack_require__("U6AS");
 
 var _global = __webpack_require__("c4IZ");
 
+var _modal = __webpack_require__("lSJB");
+
 var _profile = __webpack_require__("jPH6");
 
 var _profileEcogesture = __webpack_require__("Zmlh");
@@ -1841,7 +1843,7 @@ var SplashRoot = function SplashRoot(_ref) {
                   if (Object.values(partnersIssue).some(function (issue) {
                     return issue;
                   })) {
-                    dispatch((0, _global.setPartnersIssue)(partnersIssue));
+                    dispatch((0, _modal.openPartnersModal)(partnersIssue));
                   }
                 }
               } catch (error) {
@@ -1890,63 +1892,64 @@ var SplashRoot = function SplashRoot(_ref) {
     }
 
     function _loadData() {
-      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
-        var initializationService, customPopupService, ms, migrationsResult, termsStatus, profile, profileType, profileEcogesture, _yield$Promise$all, _yield$Promise$all2, ecogestureHash, duelHash, quizHash, challengeHash, explorationHash, analysisResult, fluidStatus, refDate, lastDataDate, _iterator, _step, fluid, userChallengeList, _filteredCurrentOngoi, _filteredCurrentOngoi2, _filteredCurrentOngoi3, _filteredCurrentDuelC, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _yield$challengeServi, isDone, customPopup, partnersInfoService, partnersInfo;
+      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
+        var initializationService, customPopupService, partnersInfoService, ms, migrationsResult, termsStatus, profile, profileType, profileEcogesture, _yield$Promise$all, _yield$Promise$all2, ecogestureHash, duelHash, quizHash, challengeHash, explorationHash, analysisResult, fluidStatus, refDate, lastDataDate, _iterator, _step, fluid, userChallengeList, _filteredCurrentOngoi, _filteredCurrentOngoi2, _filteredCurrentOngoi3, _filteredCurrentDuelC, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _yield$challengeServi, isDone;
 
-        return _regenerator.default.wrap(function _callee4$(_context4) {
+        return _regenerator.default.wrap(function _callee6$(_context6) {
           while (1) {
-            switch (_context4.prev = _context4.next) {
+            switch (_context6.prev = _context6.next) {
               case 0:
                 initializationService = new _initialization.default(client, setInitStep, setInitStepErrors);
                 customPopupService = new _customPopup.default(client);
+                partnersInfoService = new _partnersInfo.default(client);
                 ms = new _migration2.MigrationService(client, setInitStepErrors);
-                _context4.prev = 3;
-                _context4.next = 6;
+                _context6.prev = 4;
+                _context6.next = 7;
                 return ms.runMigrations(_migration.migrations);
 
-              case 6:
-                migrationsResult = _context4.sent;
+              case 7:
+                migrationsResult = _context6.sent;
                 // Init last release notes when they exist
                 dispatch((0, _global.showReleaseNotes)(migrationsResult.show, migrationsResult.notes, migrationsResult.redirectLink)); // init Terms
 
-                _context4.next = 10;
+                _context6.next = 11;
                 return initializationService.initConsent();
 
-              case 10:
-                termsStatus = _context4.sent;
+              case 11:
+                termsStatus = _context6.sent;
                 if (subscribed) dispatch((0, _global.updateTermValidation)(termsStatus)); // Init fluidPrices
 
-                _context4.next = 14;
+                _context6.next = 15;
                 return initializationService.initFluidPrices();
 
-              case 14:
-                _context4.next = 16;
+              case 15:
+                _context6.next = 17;
                 return initializationService.initProfile();
 
-              case 16:
-                profile = _context4.sent;
-                _context4.next = 19;
+              case 17:
+                profile = _context6.sent;
+                _context6.next = 20;
                 return initializationService.initProfileType();
 
-              case 19:
-                profileType = _context4.sent;
-                _context4.next = 22;
+              case 20:
+                profileType = _context6.sent;
+                _context6.next = 23;
                 return initializationService.initProfileEcogesture();
 
-              case 22:
-                profileEcogesture = _context4.sent;
+              case 23:
+                profileEcogesture = _context6.sent;
 
                 if (!(subscribed && profile)) {
-                  _context4.next = 46;
+                  _context6.next = 47;
                   break;
                 }
 
                 setValidExploration(_userExploration.UserExplorationID.EXPLORATION007);
-                _context4.next = 27;
+                _context6.next = 28;
                 return Promise.all([initializationService.initEcogesture(profile.ecogestureHash), initializationService.initDuelEntity(profile.duelHash), initializationService.initQuizEntity(profile.quizHash), initializationService.initExplorationEntity(profile.challengeHash), initializationService.initChallengeEntity(profile.explorationHash), initializationService.initAnalysis(profile)]);
 
-              case 27:
-                _yield$Promise$all = _context4.sent;
+              case 28:
+                _yield$Promise$all = _context6.sent;
                 _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 6);
                 ecogestureHash = _yield$Promise$all2[0];
                 duelHash = _yield$Promise$all2[1];
@@ -1973,12 +1976,12 @@ var SplashRoot = function SplashRoot(_ref) {
 
                 dispatch((0, _global.toggleAnalysisNotification)(!profile.haveSeenLastAnalysis));
 
-              case 46:
-                _context4.next = 48;
+              case 47:
+                _context6.next = 49;
                 return initializationService.initFluidStatus();
 
-              case 48:
-                fluidStatus = _context4.sent;
+              case 49:
+                fluidStatus = _context6.sent;
 
                 if (subscribed) {
                   dispatch((0, _global.setFluidStatus)(fluidStatus));
@@ -2006,14 +2009,14 @@ var SplashRoot = function SplashRoot(_ref) {
                 } // Init Challenge
 
 
-                _context4.next = 52;
+                _context6.next = 53;
                 return initializationService.initUserChallenges(fluidStatus);
 
-              case 52:
-                userChallengeList = _context4.sent;
+              case 53:
+                userChallengeList = _context6.sent;
 
                 if (!subscribed) {
-                  _context4.next = 79;
+                  _context6.next = 80;
                   break;
                 }
 
@@ -2028,22 +2031,22 @@ var SplashRoot = function SplashRoot(_ref) {
 
 
                 if (!(((_filteredCurrentOngoi2 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi2 === void 0 ? void 0 : _filteredCurrentOngoi2.action.state) === _userAction.UserActionState.ONGOING)) {
-                  _context4.next = 63;
+                  _context6.next = 64;
                   break;
                 }
 
                 actionService = new _action.default(client);
-                _context4.next = 61;
+                _context6.next = 62;
                 return actionService.isActionDone(filteredCurrentOngoingChallenge[0]);
 
-              case 61:
-                updatedUserChallenge = _context4.sent;
+              case 62:
+                updatedUserChallenge = _context6.sent;
 
                 if (updatedUserChallenge) {
                   dispatch((0, _challenge2.updateUserChallengeList)(updatedUserChallenge));
                 }
 
-              case 63:
+              case 64:
                 // Set Notification if action state is notification
                 if (((_filteredCurrentOngoi3 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi3 === void 0 ? void 0 : _filteredCurrentOngoi3.action.state) === _userAction.UserActionState.NOTIFICATION) {
                   dispatch((0, _global.toggleChallengeActionNotification)(true));
@@ -2054,83 +2057,108 @@ var SplashRoot = function SplashRoot(_ref) {
                 });
 
                 if (!(((_filteredCurrentDuelC = filteredCurrentDuelChallenge[0]) === null || _filteredCurrentDuelC === void 0 ? void 0 : _filteredCurrentDuelC.duel.state) === _userDuel.UserDuelState.ONGOING)) {
-                  _context4.next = 79;
+                  _context6.next = 80;
                   break;
                 }
 
-                _context4.next = 68;
+                _context6.next = 69;
                 return initializationService.initDuelProgress(filteredCurrentDuelChallenge[0]);
 
-              case 68:
-                _yield$initialization = _context4.sent;
+              case 69:
+                _yield$initialization = _context6.sent;
                 _updatedUserChallenge = _yield$initialization.updatedUserChallenge;
                 dataloads = _yield$initialization.dataloads;
 
                 if (!subscribed) {
-                  _context4.next = 79;
+                  _context6.next = 80;
                   break;
                 }
 
                 dispatch((0, _challenge2.setChallengeConsumption)(_updatedUserChallenge, dataloads)); // Check is duel is done and display notification
 
                 challengeService = new _challenge.default(client);
-                _context4.next = 76;
+                _context6.next = 77;
                 return challengeService.isChallengeDone(_updatedUserChallenge, dataloads);
 
-              case 76:
-                _yield$challengeServi = _context4.sent;
+              case 77:
+                _yield$challengeServi = _context6.sent;
                 isDone = _yield$challengeServi.isDone;
                 dispatch((0, _global.toggleChallengeDuelNotification)(isDone));
 
-              case 79:
+              case 80:
                 if (!profile) {
-                  _context4.next = 82;
+                  _context6.next = 83;
                   break;
                 }
 
-                _context4.next = 82;
+                _context6.next = 83;
                 return _usageEvent2.default.addEvent(client, {
                   type: _usageEvent.UsageEventType.CONNECTION_EVENT,
                   result: profile.isFirstConnection ? 'firstConnection' : undefined,
                   context: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'mobile' : 'desktop'
                 });
 
-              case 82:
-                _context4.next = 84;
-                return customPopupService.getCustomPopup();
-
-              case 84:
-                customPopup = _context4.sent;
-
-                if (!(profile && customPopup)) {
-                  _context4.next = 88;
-                  break;
-                }
-
-                _context4.next = 88;
-                return processCustomPopup(profile, customPopup);
-
-              case 88:
-                partnersInfoService = new _partnersInfo.default(client);
-                _context4.next = 91;
-                return partnersInfoService.getPartnersInfo();
-
-              case 91:
-                partnersInfo = _context4.sent;
-
-                if (!(profile && partnersInfo)) {
-                  _context4.next = 97;
-                  break;
-                }
+              case 83:
+                /**
+                 * Load custom popup and partners info synchronously so these treatments don't block the loading
+                 */
+                customPopupService.getCustomPopup().then( /*#__PURE__*/function () {
+                  var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(customPopup) {
+                    return _regenerator.default.wrap(function _callee4$(_context4) {
+                      while (1) {
+                        switch (_context4.prev = _context4.next) {
+                          case 0:
+                            if (!(profile && customPopup)) {
+                              _context4.next = 3;
+                              break;
+                            }
+
+                            _context4.next = 3;
+                            return processCustomPopup(profile, customPopup);
+
+                          case 3:
+                          case "end":
+                            return _context4.stop();
+                        }
+                      }
+                    }, _callee4);
+                  }));
 
-                _context4.next = 95;
-                return processFluidsStatus(profile, partnersInfo);
+                  return function (_x7) {
+                    return _ref5.apply(this, arguments);
+                  };
+                }());
+                partnersInfoService.getPartnersInfo().then( /*#__PURE__*/function () {
+                  var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(partnersInfo) {
+                    return _regenerator.default.wrap(function _callee5$(_context5) {
+                      while (1) {
+                        switch (_context5.prev = _context5.next) {
+                          case 0:
+                            if (!(profile && partnersInfo)) {
+                              _context5.next = 5;
+                              break;
+                            }
+
+                            _context5.next = 3;
+                            return processFluidsStatus(profile, partnersInfo);
+
+                          case 3:
+                            _context5.next = 5;
+                            return processPartnersStatus(profile, partnersInfo);
+
+                          case 5:
+                          case "end":
+                            return _context5.stop();
+                        }
+                      }
+                    }, _callee5);
+                  }));
 
-              case 95:
-                _context4.next = 97;
-                return processPartnersStatus(profile, partnersInfo);
+                  return function (_x8) {
+                    return _ref6.apply(this, arguments);
+                  };
+                }());
 
-              case 97:
                 if (subscribed) {
                   _logger.default.info('[Initialization] Finished successfully !');
 
@@ -2141,29 +2169,29 @@ var SplashRoot = function SplashRoot(_ref) {
                   });
                 }
 
-                _context4.next = 105;
+                _context6.next = 93;
                 break;
 
-              case 100:
-                _context4.prev = 100;
-                _context4.t0 = _context4["catch"](3);
+              case 88:
+                _context6.prev = 88;
+                _context6.t0 = _context6["catch"](4);
 
-                if (_context4.t0.message === 'Failed to fetch' && !initStepErrors) {
+                if (_context6.t0.message === 'Failed to fetch' && !initStepErrors) {
                   setInitStepErrors(_initialisationSteps.InitStepsErrors.UNKNOWN_ERROR);
                 }
 
-                _logger.default.error("[Initialization] Error : ".concat(_context4.t0));
+                _logger.default.error("[Initialization] Error : ".concat(_context6.t0));
 
                 Sentry.captureException(JSON.stringify({
-                  error: _context4.t0
+                  error: _context6.t0
                 }));
 
-              case 105:
+              case 93:
               case "end":
-                return _context4.stop();
+                return _context6.stop();
             }
           }
-        }, _callee4, null, [[3, 100]]);
+        }, _callee6, null, [[4, 88]]);
       }));
       return _loadData.apply(this, arguments);
     }
@@ -22266,10 +22294,11 @@ var initialState = {
     description: '',
     endDate: ''
   },
-  openPartnersIssueModal: {
-    enedis: false,
-    egl: false,
-    grdf: false
+  partnersInfo: {
+    egl_failure: false,
+    enedis_failure: false,
+    grdf_failure: false,
+    notification_activated: false
   },
   shouldRefreshConsent: false,
   sgeConnect: {
@@ -22343,9 +22372,9 @@ var globalReducer = function globalReducer() {
         releaseNotes: action.payload
       }) : state;
 
-    case _global.SET_PARTNERS_ISSUE:
+    case _global.SET_PARTNERS_INFO:
       return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
-        openPartnersIssueModal: action.payload
+        partnersInfo: action.payload
       }) : state;
 
     case _global.SET_CUSTOM_POPUP:
@@ -24192,11 +24221,11 @@ exports.getTodayDate = getTodayDate;
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.UPDATE_TERMS_VALIDATION = exports.UPDATE_SGE_CONNECT = exports.UPDATE_FLUID_CONNECTION = exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = exports.TOGGLE_CHALLENGE_DUEL_NOTIFICATION = exports.TOGGLE_CHALLENGE_ACTION_NOTIFICATION = exports.TOGGLE_ANALYSIS_NOTIFICATION = exports.SHOW_RELEASE_NOTES = exports.SET_SHOULD_REFRESH_CONSENT = exports.SET_PARTNERS_ISSUE = exports.SET_FLUID_STATUS = exports.SET_CUSTOM_POPUP = exports.CHANGE_SCREEN_TYPE = void 0;
+exports.UPDATE_TERMS_VALIDATION = exports.UPDATE_SGE_CONNECT = exports.UPDATE_FLUID_CONNECTION = exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = exports.TOGGLE_CHALLENGE_DUEL_NOTIFICATION = exports.TOGGLE_CHALLENGE_ACTION_NOTIFICATION = exports.TOGGLE_ANALYSIS_NOTIFICATION = exports.SHOW_RELEASE_NOTES = exports.SET_SHOULD_REFRESH_CONSENT = exports.SET_PARTNERS_INFO = exports.SET_FLUID_STATUS = exports.SET_CUSTOM_POPUP = exports.CHANGE_SCREEN_TYPE = void 0;
 exports.changeScreenType = changeScreenType;
 exports.setCustomPopup = setCustomPopup;
 exports.setFluidStatus = setFluidStatus;
-exports.setPartnersIssue = setPartnersIssue;
+exports.setPartnersInfo = setPartnersInfo;
 exports.setShouldRefreshConsent = setShouldRefreshConsent;
 exports.showReleaseNotes = showReleaseNotes;
 exports.toggleAnalysisNotification = toggleAnalysisNotification;
@@ -24208,30 +24237,30 @@ exports.updateTermValidation = updateTermValidation;
 exports.updatedFluidConnection = updatedFluidConnection;
 var CHANGE_SCREEN_TYPE = 'CHANGE_SCREEN_TYPE';
 exports.CHANGE_SCREEN_TYPE = CHANGE_SCREEN_TYPE;
+var SET_CUSTOM_POPUP = 'SET_CUSTOM_POPUP';
+exports.SET_CUSTOM_POPUP = SET_CUSTOM_POPUP;
+var SET_FLUID_STATUS = 'SET_FLUID_STATUS';
+exports.SET_FLUID_STATUS = SET_FLUID_STATUS;
+var SET_PARTNERS_INFO = 'SET_PARTNERS_INFO';
+exports.SET_PARTNERS_INFO = SET_PARTNERS_INFO;
+var SET_SHOULD_REFRESH_CONSENT = 'SET_SHOULD_REFRESH_CONSENT';
+exports.SET_SHOULD_REFRESH_CONSENT = SET_SHOULD_REFRESH_CONSENT;
 var SHOW_RELEASE_NOTES = 'SHOW_RELEASE_NOTES';
 exports.SHOW_RELEASE_NOTES = SHOW_RELEASE_NOTES;
-var TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = 'TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION';
-exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION;
+var TOGGLE_ANALYSIS_NOTIFICATION = 'TOGGLE_ANALYSIS_NOTIFICATION';
+exports.TOGGLE_ANALYSIS_NOTIFICATION = TOGGLE_ANALYSIS_NOTIFICATION;
 var TOGGLE_CHALLENGE_ACTION_NOTIFICATION = 'TOGGLE_CHALLENGE_ACTION_NOTIFICATION';
 exports.TOGGLE_CHALLENGE_ACTION_NOTIFICATION = TOGGLE_CHALLENGE_ACTION_NOTIFICATION;
 var TOGGLE_CHALLENGE_DUEL_NOTIFICATION = 'TOGGLE_CHALLENGE_DUEL_NOTIFICATION';
 exports.TOGGLE_CHALLENGE_DUEL_NOTIFICATION = TOGGLE_CHALLENGE_DUEL_NOTIFICATION;
-var TOGGLE_ANALYSIS_NOTIFICATION = 'TOGGLE_ANALYSIS_NOTIFICATION';
-exports.TOGGLE_ANALYSIS_NOTIFICATION = TOGGLE_ANALYSIS_NOTIFICATION;
-var SET_FLUID_STATUS = 'SET_FLUID_STATUS';
-exports.SET_FLUID_STATUS = SET_FLUID_STATUS;
+var TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = 'TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION';
+exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION;
 var UPDATE_FLUID_CONNECTION = 'UPDATE_FLUID_CONNECTION';
 exports.UPDATE_FLUID_CONNECTION = UPDATE_FLUID_CONNECTION;
-var UPDATE_TERMS_VALIDATION = 'UPDATE_TERMS_VALIDATION';
-exports.UPDATE_TERMS_VALIDATION = UPDATE_TERMS_VALIDATION;
-var SET_PARTNERS_ISSUE = 'SET_PARTNERS_ISSUE';
-exports.SET_PARTNERS_ISSUE = SET_PARTNERS_ISSUE;
-var SET_CUSTOM_POPUP = 'SET_CUSTOM_POPUP';
-exports.SET_CUSTOM_POPUP = SET_CUSTOM_POPUP;
-var SET_SHOULD_REFRESH_CONSENT = 'SET_SHOULD_REFRESH_CONSENT';
-exports.SET_SHOULD_REFRESH_CONSENT = SET_SHOULD_REFRESH_CONSENT;
 var UPDATE_SGE_CONNECT = 'UPDATE_SGE_CONNECT';
 exports.UPDATE_SGE_CONNECT = UPDATE_SGE_CONNECT;
+var UPDATE_TERMS_VALIDATION = 'UPDATE_TERMS_VALIDATION';
+exports.UPDATE_TERMS_VALIDATION = UPDATE_TERMS_VALIDATION;
 
 function changeScreenType(screenType) {
   return {
@@ -24303,10 +24332,10 @@ function updateTermValidation(termsStatus) {
   };
 }
 
-function setPartnersIssue(openPartnersIssueModal) {
+function setPartnersInfo(partnersInfo) {
   return {
-    type: SET_PARTNERS_ISSUE,
-    payload: openPartnersIssueModal
+    type: SET_PARTNERS_INFO,
+    payload: partnersInfo
   };
 }
 
@@ -30013,10 +30042,13 @@ module.exports = JSON.parse("[{\"_id\":\"QUIZ001\",\"questions\":[{\"questionLab
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.UPDATE_MODAL_ISFEEDBACKSOPEN = void 0;
+exports.UPDATE_MODAL_ISFEEDBACKSOPEN = exports.OPEN_PARTNERS_MODAL = void 0;
+exports.openPartnersModal = openPartnersModal;
 exports.updateModalIsFeedbacksOpen = updateModalIsFeedbacksOpen;
 var UPDATE_MODAL_ISFEEDBACKSOPEN = 'UPDATE_MODAL_ISFEEDBACKSOPEN';
 exports.UPDATE_MODAL_ISFEEDBACKSOPEN = UPDATE_MODAL_ISFEEDBACKSOPEN;
+var OPEN_PARTNERS_MODAL = 'SET_PARTNERS_ISSUE';
+exports.OPEN_PARTNERS_MODAL = OPEN_PARTNERS_MODAL;
 
 function updateModalIsFeedbacksOpen(isOpen) {
   return {
@@ -30025,6 +30057,13 @@ function updateModalIsFeedbacksOpen(isOpen) {
   };
 }
 
+function openPartnersModal(openPartnersModal) {
+  return {
+    type: OPEN_PARTNERS_MODAL,
+    payload: openPartnersModal
+  };
+}
+
 /***/ }),
 
 /***/ "lrcb":
@@ -39073,7 +39112,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 
 var initialState = {
-  isFeedbacksOpen: false
+  isFeedbacksOpen: false,
+  partnersIssueModal: {
+    enedis: false,
+    egl: false,
+    grdf: false
+  }
 };
 
 var modalReducer = function modalReducer() {
@@ -39087,6 +39131,11 @@ var modalReducer = function modalReducer() {
         isFeedbacksOpen: isOpen
       });
 
+    case _modal.OPEN_PARTNERS_MODAL:
+      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+        partnersIssueModal: action.payload
+      }) : state;
+
     default:
       return state;
   }
diff --git a/index.html b/index.html
index e7f41c721c89e3a1559359e358365ccc60d43d61..9451d7428a2f2053b1710ed0d012ae8a42bf81fe 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">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.35f915516b9585855081.js"></script><script src="app/ecolyo.c6f769f46df3b9432805.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">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.35f915516b9585855081.js"></script><script src="app/ecolyo.ae4d817db51322a0a71b.js"></script></div></body></html>
\ No newline at end of file