diff --git a/manifest.webapp b/manifest.webapp
index 620578ab4191080c76345fe9792f2d6232356d6f..55d877fe577a25a3709b923ae387c556633b8262 100644
--- a/manifest.webapp
+++ b/manifest.webapp
@@ -3,7 +3,7 @@
   "slug": "ecolyo",
   "icon": "icon.svg",
   "categories": ["energy"],
-  "version": "0.1.4",
+  "version": "0.1.6",
   "licence": "AGPL-3.0",
   "editor": "Métropole de Lyon",
   "default_locale": "fr",
diff --git a/package.json b/package.json
index 35fc72bef446d891eec2824a148b3261fd3a6579..a7875687fa3301a91b601da8c92b3fabf0bba464 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "ecolyo",
-  "version": "0.1.4",
+  "version": "0.1.6",
   "scripts": {
     "tx": "tx pull --all || true",
     "lint": "yarn lint:js && yarn lint:styles",
diff --git a/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx
index 27f2683314cfe8141e958b7e20cc64e1519c518d..7152d937d96a2337d0b608dc2ac24db390f83ad8 100644
--- a/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx
@@ -76,6 +76,7 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails
   }
 
   useEffect(() => {
+    let subscribed = true
     const lag = challengeManager.getLagDays(fluidTypes)
 
     const timePeriod = {
@@ -94,7 +95,7 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails
         20,
         fluidTypes
       )
-      if (fetchedPerformanceIndicators) {
+      if (fetchedPerformanceIndicators && subscribed) {
         fetchedPerformanceIndicators.forEach(element => {
           !element.value ? setLackOfDataForChallenge(true) : null
         })
@@ -106,6 +107,9 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails
     if (props.location.state) {
       setChallenge(props && props.location.state.challenge)
     }
+    return () => {
+      subscribed = false
+    }
   }, [])
 
   return (
diff --git a/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx
index 6b34c83cc892d2df4afa0a03b7613321061948b1..4dfb491d83fb89d088fb65e6c880b78be957c64f 100644
--- a/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx
@@ -34,7 +34,7 @@ const FinishedChallengeDetailsViewContainer: React.FC<FinishedChallengeDetailsVi
   const [challenge, setChallenge] = useState<UserChallenge | null>(null)
   const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [badgeIcon, setBadgeIcon] = useState<any | null>(null)
-  const { screenType } = useContext(AppContext)
+  const { screenType, toggleBackgroundScroll } = useContext(AppContext)
 
   async function importRightBadge(id: string, badgeStatus: number) {
     // Les png doivent ĂȘtre au format idchallenge-badgestate.png
@@ -56,10 +56,12 @@ const FinishedChallengeDetailsViewContainer: React.FC<FinishedChallengeDetailsVi
   const handleClick = (index: number) => {
     setChallengeEcogesture(index)
     setOpenEcogestureModal(true)
+    toggleBackgroundScroll()
   }
 
   const handleCloseClick = () => {
     setOpenEcogestureModal(false)
+    toggleBackgroundScroll()
   }
 
   useEffect(() => {
diff --git a/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
index 5dccdf94b7fd70d0f3a5c3f31f6b2e86a4436301..1d95f0e63226c34a36b4ce9ea9dc563c0a6931d5 100644
--- a/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
@@ -38,7 +38,11 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
   const client = props.client
   const challengeManager = new ChallengeManager(client)
 
-  const { refreshCurrentChallenge, screenType } = useContext(AppContext)
+  const {
+    refreshCurrentChallenge,
+    screenType,
+    toggleBackgroundScroll,
+  } = useContext(AppContext)
   const [challengeEcogesture, setChallengeEcogesture] = useState<number>(0)
   const [openEcogestureModal, setOpenEcogestureModal] = useState(false)
   const [challenge, setChallenge] = useState<UserChallenge | null>(null)
@@ -63,10 +67,12 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
   const handleClick = (index: number) => {
     setChallengeEcogesture(index)
     setOpenEcogestureModal(true)
+    toggleBackgroundScroll()
   }
 
   const handleCloseClick = () => {
     setOpenEcogestureModal(false)
+    toggleBackgroundScroll()
   }
 
   useEffect(() => {
diff --git a/src/components/ContentComponents/ChallengeList/ChallengesList.tsx b/src/components/ContentComponents/ChallengeList/ChallengesList.tsx
index 0a5fbeed1cb1d917696fba1f69841037f9b9cf20..523800f93fe5089e461984bd08ddd168acd4d957 100644
--- a/src/components/ContentComponents/ChallengeList/ChallengesList.tsx
+++ b/src/components/ContentComponents/ChallengeList/ChallengesList.tsx
@@ -19,9 +19,12 @@ interface ChallengesListProps {
 const ChallengesList: React.FC<ChallengesListProps> = ({
   client,
 }: ChallengesListProps) => {
-  const { fluidTypes, refreshCurrentChallenge, screenType } = useContext(
-    AppContext
-  )
+  const {
+    fluidTypes,
+    refreshCurrentChallenge,
+    screenType,
+    toggleBackgroundScroll,
+  } = useContext(AppContext)
   const challengeManager = new ChallengeManager(client)
   const [
     ongoingChallenge,
@@ -46,6 +49,7 @@ const ChallengesList: React.FC<ChallengesListProps> = ({
     setOngoingChallenge(null)
     setOpenChallengeModal(false)
     setOngoingChallengeModal(null)
+    toggleBackgroundScroll()
   }
 
   const setRightChallengeInTheMiddle = (
@@ -111,6 +115,7 @@ const ChallengesList: React.FC<ChallengesListProps> = ({
           )
         ) {
           setOpenChallengeModal(true)
+          toggleBackgroundScroll()
           await challengeManager.endChallenge(ongoingChallengeTmp, fluidTypes)
           await refreshCurrentChallenge()
           setOngoingChallenge(null)
diff --git a/src/components/ContentComponents/EcogestureList/EcogestureList.tsx b/src/components/ContentComponents/EcogestureList/EcogestureList.tsx
index 9b7b21f4d1800e772c7b87db9b192cc1bfc053d0..1a436e9da851397ba6633ce3bb16f66d9c621930 100644
--- a/src/components/ContentComponents/EcogestureList/EcogestureList.tsx
+++ b/src/components/ContentComponents/EcogestureList/EcogestureList.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react'
+import React, { useState, useEffect, useContext } from 'react'
 import { withClient, Client } from 'cozy-client'
 import StyledChallengeSpinner from 'components/CommonKit/Spinner/StyledChallengeSpinner'
 import EcogestureCard from '../EcogestureCard/EcogestureCard'
@@ -8,6 +8,7 @@ import { EcogestureType } from 'services/dataChallengeContracts'
 import ChallengeManager from 'services/challengeDataManagerService'
 import StyledClearGreyButton from 'components/CommonKit/Button/StyledClearGreyButton'
 import { translate } from 'cozy-ui/react/I18n'
+import { AppContext } from 'components/Contexts/AppContextProvider'
 
 interface EcogesturesListProps {
   t: Function
@@ -22,7 +23,7 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({
     selectedEcogesture,
     setSelectedEcogesture,
   ] = useState<EcogestureType | null>(null)
-
+  const { toggleBackgroundScroll } = useContext(AppContext)
   const [ecogestures, setEcogestures] = useState<EcogestureType[] | null>(null)
   const [openEcogestureModal, setOpenEcogestureModal] = useState(false)
   const [openNegaWattModal, setOpenNegaWattModal] = useState(false)
@@ -31,18 +32,22 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({
   const handleClick = (ecogesture: EcogestureType) => {
     setSelectedEcogesture(ecogesture)
     setOpenEcogestureModal(true)
+    toggleBackgroundScroll()
   }
 
   const handleCloseClick = () => {
     setOpenEcogestureModal(false)
+    toggleBackgroundScroll()
   }
 
   const handleNegaWattClick = () => {
     setOpenNegaWattModal(true)
+    toggleBackgroundScroll()
   }
 
   const handleNegaWattCloseClick = () => {
     setOpenNegaWattModal(false)
+    toggleBackgroundScroll()
   }
 
   useEffect(() => {
diff --git a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
index 7bb2d7635f8f701a83d88551d90e4324b5542cdd..4d9d01fc788c4db55a6fa042102d686926dd0d4e 100644
--- a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
+++ b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
@@ -55,17 +55,16 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
           <div className="em-header text-14-normal-uppercase">
             {t('ECOGESTURE.TITLE_ECOGESTURE')}
           </div>
-          <div className="em-content-box">
-            <div className="em-content-box-text">
-              <div className="em-content-box-text-header">
-                {(ecogesture.unlocked || unlockedEcogesture) && ecogestureIcon && (
-                  <div>
+          <div className="em-root">
+            <div className="em-content">
+              <div className="em-content-box-img">
+                {(ecogesture.unlocked || unlockedEcogesture) &&
+                  ecogestureIcon && (
                     <Icon className="icon" icon={ecogestureIcon} size={140} />
-                  </div>
-                )}
-                <div className="em-title text-24-bold ">
-                  {ecogesture.shortName}
-                </div>
+                  )}
+              </div>
+              <div className="em-title text-24-bold ">
+                {ecogesture.shortName}
               </div>
               <div className="em-detail">
                 <div className="em-detail-nwh">
diff --git a/src/components/ContentComponents/Konnector/KonnectorLaunch.tsx b/src/components/ContentComponents/Konnector/KonnectorLaunch.tsx
index a967b39588a26f4d24775200504741a72515ee1b..69470f3abebe21f769a60987bb540f5843c101cf 100644
--- a/src/components/ContentComponents/Konnector/KonnectorLaunch.tsx
+++ b/src/components/ContentComponents/Konnector/KonnectorLaunch.tsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from 'react'
+import React, { useEffect, useState, useContext } from 'react'
 import { withClient, Client } from 'cozy-client'
 import { translate } from 'cozy-ui/react/I18n'
 
@@ -18,6 +18,7 @@ import Modal from 'components/CommonKit/Modal/Modal'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import errorIcon from 'assets/icons/visu/data-nok.svg'
 import successIcon from 'assets/icons/visu/data-ok.svg'
+import { AppContext } from 'components/Contexts/AppContextProvider'
 
 const loadingOptions = {
   loop: true,
@@ -45,7 +46,7 @@ const KonnectorLaunch: React.FC<KonnectorLaunchProps> = ({
 }: KonnectorLaunchProps) => {
   const [state, setState] = useState<string | null>(null)
   const [openModal, setOpenModal] = useState(false)
-
+  const { toggleBackgroundScroll } = useContext(AppContext)
   const callbackResponse = (_state: string) => {
     setState(_state)
   }
@@ -53,6 +54,7 @@ const KonnectorLaunch: React.FC<KonnectorLaunchProps> = ({
   const handleCloseClick = () => {
     handleKonnectorLaunch()
     setOpenModal(false)
+    toggleBackgroundScroll()
   }
 
   useEffect(() => {
@@ -71,6 +73,7 @@ const KonnectorLaunch: React.FC<KonnectorLaunchProps> = ({
           callbackResponse(SUCCESS_EVENT)
         })
         setOpenModal(true)
+        toggleBackgroundScroll()
       }
     }
     getData()
diff --git a/src/components/ContentComponents/Konnector/KonnectorResult.tsx b/src/components/ContentComponents/Konnector/KonnectorResult.tsx
index 1ef6d5849c0f3740d0d4a1bc01e127706cff712f..fdb201e67fbf157bfc16751c951777dc3f4059d1 100644
--- a/src/components/ContentComponents/Konnector/KonnectorResult.tsx
+++ b/src/components/ContentComponents/Konnector/KonnectorResult.tsx
@@ -42,8 +42,14 @@ const KonnectorResult: React.FC<KonnectorResultProps> = ({
   const updateState = async (trigger: Trigger) => {
     const triggerState = await TriggerService.fetchTriggerState(client, trigger)
 
-    if (triggerState !== 'errored') {
-      setLastExecutionDate(new Date(triggerState.last_success).toLocaleString())
+    if (triggerState) {
+      if (triggerState.last_success) {
+        setLastExecutionDate(
+          new Date(triggerState.last_success).toLocaleString()
+        )
+      } else {
+        setLastExecutionDate('-')
+      }
       setStatus(triggerState.status)
       handleJobState(triggerState.status)
       await context.refreshFluidTypes()
diff --git a/src/components/Contexts/AppContextProvider.tsx b/src/components/Contexts/AppContextProvider.tsx
index b7b9c7ae5e5ee3927b7ba26001d090890e152d73..85b5976ecd015ff7fbd42ae16281dbc17671dc01 100644
--- a/src/components/Contexts/AppContextProvider.tsx
+++ b/src/components/Contexts/AppContextProvider.tsx
@@ -33,6 +33,7 @@ interface AppContextProps {
   setChartIsLoaded: Function
   feedbackIsOpened: boolean
   setFeedbackOpened: Function
+  toggleBackgroundScroll: Function
 }
 
 export const AppContext = React.createContext<AppContextProps>({
@@ -60,6 +61,7 @@ export const AppContext = React.createContext<AppContextProps>({
   setChartIsLoaded: () => null,
   feedbackIsOpened: false,
   setFeedbackOpened: () => null,
+  toggleBackgroundScroll: () => null,
 })
 
 interface AppContextProviderProps {
@@ -181,6 +183,25 @@ const AppContextProvider: React.FC<AppContextProviderProps> = ({
     }
   }
 
+  const toggleBackgroundScroll = () => {
+    const backgroundDesktop = document.querySelector(
+      '.app-content'
+    ) as HTMLElement
+    const backgroundMobile = document.querySelector('html') as HTMLElement
+    const bgStyleDesktop = backgroundDesktop && backgroundDesktop.style
+    const bgStyleMobile = backgroundMobile && backgroundMobile.style
+    if (
+      bgStyleDesktop.overflowY === 'hidden' ||
+      bgStyleMobile.overflowY === 'hidden'
+    ) {
+      bgStyleDesktop.overflowY = 'unset'
+      bgStyleMobile.overflowY = 'unset'
+    } else {
+      bgStyleDesktop.overflowY = 'hidden'
+      bgStyleMobile.overflowY = 'hidden'
+    }
+  }
+
   useEffect(() => {
     let subscribed = true
     function handleResize() {
@@ -332,6 +353,7 @@ const AppContextProvider: React.FC<AppContextProviderProps> = ({
         chartIsLoaded,
         feedbackIsOpened,
         setFeedbackOpened,
+        toggleBackgroundScroll,
       }}
     >
       {children}
diff --git a/src/services/challengeDataManagerService.ts b/src/services/challengeDataManagerService.ts
index 3caae09537dcf2583ddcddd1b08a271eba58abaf..00a32f05a680fb0ac96fcfe03fef4ef3b0cfd381 100644
--- a/src/services/challengeDataManagerService.ts
+++ b/src/services/challengeDataManagerService.ts
@@ -355,9 +355,17 @@ export default class ChallengeManager implements IChallengeManager {
    * the possible calculation of data based on configured fluidTypes
    */
   public getLagDays = (fluidTypes: FluidType[]): number => {
-    if (fluidTypes.includes(FluidType.WATER)) {
+    if (
+      fluidTypes &&
+      fluidTypes.length > 0 &&
+      fluidTypes.includes(FluidType.WATER)
+    ) {
       return 3
-    } else if (fluidTypes.includes(FluidType.GAS)) {
+    } else if (
+      fluidTypes &&
+      fluidTypes.length > 0 &&
+      fluidTypes.includes(FluidType.GAS)
+    ) {
       return 2
     } else {
       return 1
diff --git a/src/services/initDataManagerService.ts b/src/services/initDataManagerService.ts
index 194f9e022b0fd0264057bea3c2f1f8160d08354d..68dcf4b1bd2f240f8a2b981f7ab397902910da39 100644
--- a/src/services/initDataManagerService.ts
+++ b/src/services/initDataManagerService.ts
@@ -421,8 +421,11 @@ export default class InitDataManager {
         ) {
           // Check if we are in the viewing timezone for current challenge
           const viewingDate = cdm.getViewingDate(currentChallenge)
-          if (DateTime.local() >= viewingDate) {
-            if (currentChallenge.maxEnergy === -1) {
+          if (DateTime.local() >= viewingDate && currentChallenge.fluidTypes) {
+            if (
+              currentChallenge.maxEnergy === -1 &&
+              currentChallenge.fluidTypes
+            ) {
               const maxEnergyResult = await cdm.setMaxEnergy(
                 currentChallenge,
                 this._client,
diff --git a/src/styles/components/_ecogesture.scss b/src/styles/components/_ecogesture.scss
index 0c90812ea517df85de7f480855574d1e0647d721..2ad62004c9347d69bdf66da2662eb8b1a82d6700 100644
--- a/src/styles/components/_ecogesture.scss
+++ b/src/styles/components/_ecogesture.scss
@@ -8,7 +8,7 @@
   align-items: center;
   justify-content: center;
   padding: 1rem 1.5rem 2.5rem 1.5rem;
-  .negawatt-button-content{
+  .negawatt-button-content {
     max-width: 52rem;
     width: 97%;
     @media #{$tablet} {
@@ -61,7 +61,7 @@
     &.ec-content-challenge {
       padding: 0.5rem 0;
     }
-    .ec-content-icon{
+    .ec-content-icon {
       min-height: 50px;
     }
     .ec-content-short-name {
@@ -98,37 +98,8 @@
   display: flex;
   justify-content: center;
 }
-.em-icon {
-  margin-bottom: 1rem;
-}
-.em-title {
-  margin-bottom: 0;
-}
-.em-detail {
-  display: flex;
-  flex-direction: row;
-  margin: 0.5em 0;
-  .em-detail-nwh {
-    display: flex;
-    flex: 1;
-    align-self: flex-start;
-    margin-top: 0.65rem;
-    color: var(--textDark);
-    .em-detail-nwh-unit {
-      margin-left: 0.2rem;
-    }
-  }
-  .em-picto-flow {
-    display: flex;
-    align-self: flex-end;
-    .em-pic-content {
-      margin: 0.3em;
-    }
-  }
-}
 
-.em-content-box {
-  max-height: 70vh;
+.em-root {
   overflow: auto;
   width: 100%;
   display: flex;
@@ -145,16 +116,14 @@
   &::-webkit-scrollbar-thumb {
     background: #6f7074;
   }
-  .em-content-box-text {
-    display: flex;
-    flex-direction: column;
+  .em-content {
     padding: 1.5rem 2.5rem 0;
-    // width: 22.125rem;
+
     @media #{$large-phone} {
       width: 100%;
       padding: 1.5rem 1.5rem 0;
     }
-    .em-content-box-text-header {
+    .em-content-box-img {
       display: flex;
       flex-direction: column;
       justify-content: center;
@@ -163,6 +132,33 @@
         margin-bottom: 1rem;
       }
     }
+    .em-detail {
+      display: flex;
+      flex-direction: row;
+      margin: 0.5em 0;
+      .em-detail-nwh {
+        display: flex;
+        flex: 1;
+        align-self: flex-start;
+        margin-top: 0.65rem;
+        color: var(--textDark);
+        .em-detail-nwh-unit {
+          margin-left: 0.2rem;
+        }
+      }
+      .em-picto-flow {
+        display: flex;
+        align-self: flex-end;
+        .em-pic-content {
+          margin: 0.3em;
+        }
+      }
+    }
+    .em-title {
+      margin-bottom: 0;
+      text-align: center;
+    }
+
     .long-name {
       font-weight: bold;
       line-height: 150%;
@@ -171,11 +167,25 @@
     .em-description {
       padding-bottom: 2rem;
     }
-    .em-description-2 {
-      padding-top: 2rem;
-    }
-    .em-description-3 {
-      padding-bottom: 0.5rem;
-    }
+  }
+}
+.em-content-box-text {
+  display: flex;
+  flex-direction: column;
+  padding: 1.5rem 2.5rem;
+  @media #{$large-phone} {
+    padding: 1.5rem 1.5rem;
+  }
+  .em-description {
+    padding-bottom: 2rem;
+  }
+  .em-description-2 {
+    padding-top: 2rem;
+  }
+  .em-description-3 {
+    padding-bottom: 0.5rem;
+  }
+  .em-title {
+    margin-bottom: 0;
   }
 }
diff --git a/src/styles/components/_modal.scss b/src/styles/components/_modal.scss
index b9abbb961d724fafffe109fa233a614c65146ace..51ae463a9a03fb7aaf3b3ffd62e9def5b301a5fc 100644
--- a/src/styles/components/_modal.scss
+++ b/src/styles/components/_modal.scss
@@ -19,15 +19,9 @@
   .modal-box {
     background: $grey-background;
     position: fixed;
-    // overflow-y: auto;
-
-    // top: 50%;
-    // left: 50%;
     width: 36rem;
     max-width: 100%;
-    // height: 80vh;
     max-height: 90vh;
-    // transform: translate(-50%, -50%);
     padding: 1rem 0 0 0;
     box-sizing: border-box;
     box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);
@@ -53,11 +47,7 @@
       z-index: 10;
     }
     .modal-content {
-      @media #{$large-phone} {
-        // max-height: 80vh;
-      }
       max-height: 85vh;
-      // max-height: -webkit-fill-available;
       display: flex;
       flex-direction: column;
       align-items: center;