diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 2ffcf74139b460367825cfd2d64ee3ade06250d7..d81ff084cb9c2d3a5b1d250f6735bb15068a9a76 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -197,6 +197,6 @@ class ApplicationController < ActionController::Base
   # Manually Handle errors when application is in readonly mode
   def handle_readonly_error
     flash.clear
-    redirect_to request.referrer, flash: { alert: I18n.t("errors.maintenance.readonly") }
+    redirect_to request.referrer || root_path, flash: { alert: I18n.t("errors.maintenance.readonly") }
   end
 end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index d947f54b1c44a3785691b12c839a5a1fa5451770..ec81ac712c29b420ed2bdedf7261bf702f65722b 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -87,6 +87,7 @@ module ApplicationHelper
   def allow_greenlight_accounts?
     return Rails.configuration.allow_user_signup unless Rails.configuration.loadbalanced_configuration
     return false unless @user_domain && !@user_domain.empty? && Rails.configuration.allow_user_signup
+    return false if @user_domain == "greenlight"
     # Proceed with retrieving the provider info
     begin
       provider_info = retrieve_provider_info(@user_domain, 'api2', 'getUserGreenlightCredentials')
diff --git a/bin/start b/bin/start
index 3f99e49b6e847ab4012a6872b9f5669bdb8cbc2f..b5d475d2b48109a2d2fc3a285d96101c43107b92 100755
--- a/bin/start
+++ b/bin/start
@@ -9,8 +9,11 @@ if [ "$RAILS_ENV" = "production" ] && [ "$DB_ADAPTER" = "postgresql" ]; then
 fi
 
 bundle exec rake db:create
-if ! bundle exec rake db:migrate ; then
-  export DB_MIGRATE_FAILED=1
+
+if [ "$MAINTENANCE_MODE" != "readonly" ] && [ "$MAINTENANCE_MODE" != "full" ]; then
+  if ! bundle exec rake db:migrate ; then
+    export DB_MIGRATE_FAILED=1
+  fi
 fi
 
 bundle exec rake assets:precompile