diff --git a/deploy/app.js b/deploy/app.js
index 3364e2113a0a746bc60d8aac2d3457c3bff70b5d..a07d5438a6f2ae37ef985fe97e22a0327d6dd322 100644
--- a/deploy/app.js
+++ b/deploy/app.js
@@ -7,7 +7,7 @@ const MemoryStore = require('memorystore')(session)
 const crypto = require('crypto')
 const cookieParser = require('cookie-parser')
 
-const { router: regionalFeaturesRouter, regionalFeaturesIsReady } = require('./regionalFeatures')
+const { router: regionalFeaturesRouter, regionalFeatureIsReady } = require('./regionalFeatures')
 
 const LOCAL_CDN_FLAG = !!process.env.PRECOMPUTED_SERVER
 
@@ -166,7 +166,7 @@ app.use('/logo', require('./logo'))
 
 app.get('/ready', async (req, res) => {
   const authIsReady = await authReady()
-  const regionalFeatureReady = await regionalFeaturesIsReady()
+  const regionalFeatureReady = await regionalFeatureIsReady()
   const allReady = [ 
     authIsReady,
     regionalFeatureReady,
@@ -176,7 +176,7 @@ app.get('/ready', async (req, res) => {
      */
   ].every(f => !!f)
   if (allReady) return res.status(200).end()
-  else return res.status(400).end()
+  else return res.status(500).end()
 })
 
 /**
diff --git a/deploy/regionalFeatures/index.js b/deploy/regionalFeatures/index.js
index e05545ab5499d23d8c6e60205c35b26b92a685ac..d505c42826c3007ee000cdfaed36421e03181263 100644
--- a/deploy/regionalFeatures/index.js
+++ b/deploy/regionalFeatures/index.js
@@ -18,12 +18,15 @@ const regionIdToDataIdMap = new Map()
 const datasetIdToDataMap = new Map()
 const datasetIdDetailMap = new Map()
 
+let isReady = false
+
 const ITERABLE_KEY_SYMBOL = Symbol('ITERABLE_KEY_SYMBOL')
 
 /**
  * this pattern allows all of the special data to be fetched in parallel
  * async await would mean it is fetched one at a time
  */
+
 const init = Promise.all(
   arrayToFetch.map(url =>
     new Promise((rs, rj) => {
@@ -70,7 +73,7 @@ const init = Promise.all(
       })
     })
   )
-)
+).then(() => isReady = true)
 
 const getFeatureMiddleware = (req, res, next) => {
   const { featureFullId } = req.params
@@ -213,10 +216,7 @@ router.get(
   sendFeatureDataResponse,
 )
 
-const regionalFeatureIsReady = () => Promise.race([
-  init.then(() => true),
-  new Promise(rs => setTimeout(() => rs(false), 500))
-])
+const regionalFeatureIsReady = async () => isReady
 
 module.exports = {
   router,