diff --git a/src/reducers/challenge.js b/src/reducers/challenge.js
index 0705ad08..05bb9bc9 100644
--- a/src/reducers/challenge.js
+++ b/src/reducers/challenge.js
@@ -465,15 +465,25 @@ export function factory(options = {}) {
       challengeId,
       tokens.tokenV3,
       tokens.tokenV2,
-    )).then((details) => {
-      const track = _.get(details, 'payload.track', '').toLowerCase();
-      const checkpointsPromise = track === 'design' ? (
-        redux.resolveAction(actions.challenge.fetchCheckpointsDone(tokens.tokenV2, challengeId))
+    )).then((res) => {
+      const challengeDetails = _.get(res, 'payload', {});
+      const track = _.get(challengeDetails, 'legacy.track', '');
+      let checkpointsPromise = null;
+      if (track === 'DESIGN') {
+        const p = _.get(challengeDetails, 'phases', [])
+          .filter(x => x.name === 'Checkpoint Review');
+        if (p.length && !p[0].isOpen) {
+          checkpointsPromise = redux.resolveAction(
+            actions.challenge.fetchCheckpointsDone(tokens.tokenV2, challengeDetails.legacyId),
+          );
+        }
+      }
+      const resultsPromise = challengeDetails.status === 'Completed' ? (
+        redux.resolveAction(
+          actions.challenge.loadResultsDone(tokens, challengeId, track.toLowerCase()),
+        )
       ) : null;
-      const resultsPromise = _.get(details, 'payload.status', '') === 'Completed' ? (
-        redux.resolveAction(actions.challenge.loadResultsDone(tokens, challengeId, track))
-      ) : null;
-      return Promise.all([details, checkpointsPromise, resultsPromise]);
+      return Promise.all([res, checkpointsPromise, resultsPromise]);
     }).then(([details, checkpoints, results]) => {
       state = {
         ...state,