diff --git a/merge-request-check/Dockerfile b/merge-request-check/Dockerfile
index a1cae24c350f64ab2e6c2e5c385633b7cd59960f..c42327ba786f2b1494643210544f9704045be32f 100644
--- a/merge-request-check/Dockerfile
+++ b/merge-request-check/Dockerfile
@@ -14,9 +14,12 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
 RUN mkdir /code
 WORKDIR /code
 
+RUN apk add --no-cache bash git
+
 COPY requirements.txt ./
 RUN pip install --no-cache-dir -r requirements.txt
 
 COPY approval_check.py ./
+COPY merge_review_check.sh ./
 
 CMD ["python", "approval_check.py"]
diff --git a/merge-request-check/approval_check.py b/merge-request-check/approval_check.py
index 628158ddf6303413ea5fa165c43f3ea1b574c5a6..45e70197a8b2137bba7b5ce02718ad5b99d5fc30 100644
--- a/merge-request-check/approval_check.py
+++ b/merge-request-check/approval_check.py
@@ -1,5 +1,6 @@
 import os
 import requests
+import subprocess
 import sys
 
 '''
@@ -18,11 +19,23 @@ response = requests.post('https://its-lampprod1-whm.unl.edu/merge_auth_check.php
     'user': os.environ.get('GITLAB_USER_LOGIN')
 })
 
-if (response.status_code == 200):
+if response.status_code == 200:
     # Merge is allowed, print response and exit cleanly (status 0)
     print(response.content.decode('utf-8'))
     exit(0)
+elif response.status_code == 403:
+    # Merge is not allowed, run further checks to see if a review is needed.
+    result = subprocess.run(['bash', '/code/merge_review_check.sh'], capture_output=True, text=True)
+
+    # Print output from additional checks script
+    print(result.stdout)
+    print(result.stderr, file=sys.stderr)
+
+    # Exit using the exit code form the check script
+    exit(result.returncode)
 else:
-    # Merge is not allowed, print response and exit with an error (status 1)
+    # API call failed. Server may be down, or other setup failure. Exit with an error (status 1)
+    print('Merge request approval check API call failed')
+    print(f'API Call Status Code: {response.status_code}')
     print(response.content.decode('utf-8'), file=sys.stderr)
     exit(1)
diff --git a/merge-request-check/merge_review_check.sh b/merge-request-check/merge_review_check.sh
index 35570d21c6267015b3fe2fec5ffe29562b13ec28..b92f5f5d17f9c3f5c5829aebd80f78be56329d15 100644
--- a/merge-request-check/merge_review_check.sh
+++ b/merge-request-check/merge_review_check.sh
@@ -6,6 +6,9 @@
 #CI_COMMIT_BEFORE_SHA=""
 #CI_COMMIT_SHA=""
 
+# If any commands in this scprt fail, exit with a non-zero exit code
+set -e
+
 # Function to check for ASP.NET controls and directives
 check_aspx() {
     local content="$1"