diff --git a/src/reducers/challenge.js b/src/reducers/challenge.js
index 26cee382..6db8365f 100644
--- a/src/reducers/challenge.js
+++ b/src/reducers/challenge.js
@@ -62,7 +62,15 @@ function onGetDetailsDone(state, action) {
   }
 
   const details = action.payload;
-  if (_.toString(details.id) !== state.loadingDetailsForChallengeId) {
+
+  // condition based on ROUTE used for Review Opportunities, change if needed
+  const challengeId = state.loadingDetailsForChallengeId;
+  let compareChallenge = details.id;
+  if (challengeId.length >= 5 && challengeId.length <= 8) {
+    compareChallenge = details.legacyId;
+  }
+
+  if (_.toString(compareChallenge) !== challengeId) {
     return state;
   }
 
diff --git a/src/services/challenges.js b/src/services/challenges.js
index 203c5b3c..31b001e0 100644
--- a/src/services/challenges.js
+++ b/src/services/challenges.js
@@ -319,10 +319,20 @@ class ChallengesService {
    * @return {Promise} Resolves to the challenge object.
    */
   async getChallengeDetails(challengeId) {
-    const challengeFiltered = await this.private.getChallenges('/challenges/', { id: challengeId })
+    let isLegacyChallenge = false;
+    const filters = {};
+    // condition based on ROUTE used for Review Opportunities, change if needed
+    if (challengeId.length >= 5 && challengeId.length <= 8) {
+      isLegacyChallenge = true;
+      filters.legacyId = challengeId;
+    } else {
+      filters.id = challengeId;
+    }
+    const challengeFiltered = await this.private.getChallenges('/challenges/', filters)
       .then(res => res.challenges[0]);
 
     if (challengeFiltered) {
+      challengeFiltered.isLegacyChallenge = isLegacyChallenge;
       const { events } = challengeFiltered.metadata;
       if (events) {
         challengeFiltered.events = _.map(events, e => ({