diff --git a/ExerciseChecker/src/managers/HttpManager.ts b/ExerciseChecker/src/managers/HttpManager.ts
index fb113963ab8d37459ff72bf05d33827598889edd..54d6990ad2c31f3a0307a56b13f305b0285ee0db 100644
--- a/ExerciseChecker/src/managers/HttpManager.ts
+++ b/ExerciseChecker/src/managers/HttpManager.ts
@@ -2,6 +2,11 @@ import axios, { AxiosRequestHeaders } from 'axios';
 import FormData                       from 'form-data';
 import ClientsSharedConfig            from '../sharedByClients/config/ClientsSharedConfig';
 import Config                         from '../config/Config';
+import { version }                    from '../config/Version';
+import boxen                          from 'boxen';
+import DojoStatusCode                 from '../shared/types/Dojo/DojoStatusCode';
+import DojoBackendResponse            from '../shared/types/Dojo/DojoBackendResponse';
+import { StatusCodes }                from 'http-status-codes';
 
 
 class HttpManager {
@@ -12,6 +17,19 @@ class HttpManager {
         this.registerResponseInterceptor();
     }
 
+    private requestError(message: string) {
+        console.log(boxen(message, {
+            title         : 'Request error',
+            titleAlignment: 'center',
+            borderColor   : 'red',
+            borderStyle   : 'bold',
+            margin        : 1,
+            padding       : 1,
+            textAlignment : 'left'
+        }));
+        process.exit(1);
+    }
+
     private registerRequestInterceptor() {
         axios.interceptors.request.use((config) => {
             if ( config.data instanceof FormData ) {
@@ -26,6 +44,9 @@ class HttpManager {
                 }
 
                 config.headers.Authorization = `ExerciseSecret ${ Config.exercise.secret }`;
+
+                config.headers['client'] = 'DojoExerciseChecker';
+                config.headers['client-version'] = version;
             }
 
             return config;
@@ -36,6 +57,25 @@ class HttpManager {
         axios.interceptors.response.use((response) => {
             return response;
         }, (error) => {
+            if ( error.response ) {
+                if ( error.response.status === StatusCodes.METHOD_NOT_ALLOWED && error.response.data ) {
+                    const data: DojoBackendResponse<{}> = error.response.data;
+
+                    switch ( data.code ) {
+                        case DojoStatusCode.CLIENT_NOT_SUPPORTED:
+                            this.requestError('Client not recognized by the server. Please contact the administrator.');
+                            break;
+                        case DojoStatusCode.CLIENT_VERSION_NOT_SUPPORTED:
+                            this.requestError(`ExerciseChecker version not supported by the server.\nPlease check that the CI/CD pipeline use the "${ Config.dockerhub.repositories.exerciseChecker }:latest" image.\nIf yes, try again later and if the problem persists, please contact the administrator.`);
+                            break;
+                        default:
+                            break;
+                    }
+                }
+            } else {
+                this.requestError('Error connecting to the server. Please check your internet connection. If the problem persists, please contact the administrator.');
+            }
+
             return Promise.reject(error);
         });
     }