diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index 657df6984600a4ac6412f934c5d3c06e768f45c0..5e482210ba707662f857dd8067b974cf7947598a 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -36,15 +36,21 @@ class DojoBackendManager {
                     case DojoStatusCode.ASSIGNMENT_NAME_CONFLICT:
                         spinner.fail(`Assignment creation error: The assignment name already exists. Please choose another name.`);
                         break;
-                    case DojoStatusCode.ASSIGNMENT_CREATION_ERROR:
+                    case DojoStatusCode.ASSIGNMENT_CREATION_GITLAB_ERROR:
+                        spinner.fail(`Assignment creation error: An unknown error occurred while creating the assignment on GitLab (internal error message: ${ error.response?.data?.description ?? 'unknown error' }). Please try again later or contact an administrator.`);
+                        break;
+                    case DojoStatusCode.ASSIGNMENT_CREATION_INTERNAL_ERROR:
                         spinner.fail(`Assignment creation error: An unknown error occurred while creating the assignment (internal error message: ${ error.response?.data?.description ?? 'unknown error' }). Please try again later or contact an administrator.`);
                         break;
                     case DojoStatusCode.MAX_EXERCISE_PER_ASSIGNMENT_REACHED:
                         spinner.fail(`The following users have reached the maximum number of exercise of this assignment : ${ ((error.response.data as DojoBackendResponse<Array<Gitlab.UserSchema>>).data).map(user => user.name).join(', ') }.`);
                         break;
-                    case DojoStatusCode.EXERCISE_CREATION_ERROR:
+                    case DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR:
                         spinner.fail(`Exercise creation error: An unknown error occurred while creating the exercise (internal error message: ${ error.response?.data?.description ?? 'unknown error' }). Please try again later or contact an administrator.`);
                         break;
+                    case DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR:
+                        spinner.fail(`Exercise creation error: An unknown error occurred while creating the exercise on GitLab (internal error message: ${ error.response?.data?.description ?? 'unknown error' }). Please try again later or contact an administrator.`);
+                        break;
                     case DojoStatusCode.GITLAB_TEMPLATE_NOT_FOUND:
                         spinner.fail(`Template not found or access denied. Please check the template ID or url. Also, please check that the template have public/internal visibility or that your and Dojo account (${ ClientsSharedConfig.gitlab.dojoAccount.username }) have at least reporter role to the template (if private).`);
                         break;
diff --git a/NodeApp/src/managers/HttpManager.ts b/NodeApp/src/managers/HttpManager.ts
index ba4b22af6f7a4657cb15174379b31990bbedde9f..be8ac3b5326c335db571fb8562c44aadb13478aa 100644
--- a/NodeApp/src/managers/HttpManager.ts
+++ b/NodeApp/src/managers/HttpManager.ts
@@ -76,16 +76,20 @@ class HttpManager {
 
     private apiAuthorizationError(error: AxiosError, isFromApi: boolean) {
         if ( this.handleAuthorizationCommandErrors && isFromApi && error.response ) {
-            switch ( error.response.status ) {
-                case StatusCodes.UNAUTHORIZED:
-                    this.requestError('Session expired or does not exist. Please login again.');
-                    break;
-                case StatusCodes.FORBIDDEN:
-                    this.requestError('Forbidden access.');
-                    break;
-                default:
-                    this.requestError('Unknown error.');
-                    break;
+            const errorCustomCode = (error.response.data as DojoBackendResponse<unknown> | undefined)?.code ?? error.response.status;
+            
+            if ( errorCustomCode === error.response.status ) {
+                switch ( error.response.status ) {
+                    case StatusCodes.UNAUTHORIZED:
+                        this.requestError('Session expired or does not exist. Please login again.');
+                        break;
+                    case StatusCodes.FORBIDDEN:
+                        this.requestError('Forbidden access.');
+                        break;
+                    default:
+                        this.requestError('Unknown error.');
+                        break;
+                }
             }
         } else {
             this.handleAuthorizationCommandErrors = true;
diff --git a/NodeApp/src/shared b/NodeApp/src/shared
index 47b289f99ef88df993f5977efa6a53e4bd0abe85..556a235605ba36ea775cd54da4aee8a5bc03d912 160000
--- a/NodeApp/src/shared
+++ b/NodeApp/src/shared
@@ -1 +1 @@
-Subproject commit 47b289f99ef88df993f5977efa6a53e4bd0abe85
+Subproject commit 556a235605ba36ea775cd54da4aee8a5bc03d912