diff --git a/api/manage.py b/api/manage.py
index d99574ebe2ac8b7f8381d768b4651cb002561e1f..c8db95ede2a7c2a36c4f2368ab77d1d600be3972 100755
--- a/api/manage.py
+++ b/api/manage.py
@@ -1,4 +1,5 @@
 #!/usr/bin/env python
+import django
 import os
 import sys
 
@@ -7,6 +8,12 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
 if __name__ == "__main__":
 
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
+    # we're doing this here since otherwise, missing environment
+    # files in settings result in AttributeError being raised, generating
+    # a cryptic django.core.exceptions.AppRegistryNotReady error.
+    # To prevent that, we explicitely load settings here before anything
+    # else, so we fail fast with a relevant error. See #140 for more details.
+    django.setup()
 
     from django.core.management import execute_from_command_line
 
diff --git a/changes/changelog.d/140.enhancement b/changes/changelog.d/140.enhancement
new file mode 100644
index 0000000000000000000000000000000000000000..9bc3aab950fd018dbb5a87fe3442e678ff01bce6
--- /dev/null
+++ b/changes/changelog.d/140.enhancement
@@ -0,0 +1 @@
+Better error messages in case of missing environment variables (#140)