diff --git a/lms/djangoapps/mobile_api/middleware.py b/lms/djangoapps/mobile_api/middleware.py
index a38f4044dcc2bade73a0e8438e61b6dae32a58e9..0a870579701d3b22f94188b9bf8eff123820fc65 100644
--- a/lms/djangoapps/mobile_api/middleware.py
+++ b/lms/djangoapps/mobile_api/middleware.py
@@ -9,6 +9,7 @@ from django.conf import settings
 from django.core.cache import cache
 from django.http import HttpResponse
 from pytz import UTC
+import six
 
 from mobile_api.mobile_platform import MobilePlatform
 from mobile_api.models import AppVersionConfig
@@ -104,13 +105,13 @@ class AppVersionUpgrade(object):
                 cached_data = cache.get_many([last_supported_date_cache_key, latest_version_cache_key])
 
                 last_supported_date = cached_data.get(last_supported_date_cache_key)
-                if not last_supported_date:
+                if last_supported_date != self.NO_LAST_SUPPORTED_DATE and not isinstance(last_supported_date, datetime):
                     last_supported_date = self._get_last_supported_date(platform.NAME, platform.version)
                     cache.set(last_supported_date_cache_key, last_supported_date, self.CACHE_TIMEOUT)
                 request_cache_dict[self.LAST_SUPPORTED_DATE_HEADER] = last_supported_date
 
                 latest_version = cached_data.get(latest_version_cache_key)
-                if not latest_version:
+                if not (latest_version and isinstance(latest_version, six.text_type)):
                     latest_version = self._get_latest_version(platform.NAME)
                     cache.set(latest_version_cache_key, latest_version, self.CACHE_TIMEOUT)
                 request_cache_dict[self.LATEST_VERSION_HEADER] = latest_version