diff --git a/helpers/Dojo/ExerciseDockerCompose.ts b/helpers/Dojo/ExerciseDockerCompose.ts
index 00bad2fab426407395cff2543b45700c9164eab0..ad033438c57eb8918aff6bc7278b8197ecc585ac 100644
--- a/helpers/Dojo/ExerciseDockerCompose.ts
+++ b/helpers/Dojo/ExerciseDockerCompose.ts
@@ -48,7 +48,7 @@ class ExerciseDockerCompose {
         this.events.emit('finished', success, code);
     }
 
-    private registerChildProcess(childProcess: ChildProcessWithoutNullStreams, resolve: (value: (number | PromiseLike<number>)) => void, reject: (reason?: unknown) => void, displayable: boolean) {
+    private registerChildProcess(childProcess: ChildProcessWithoutNullStreams, resolve: (value: (number | PromiseLike<number>)) => void, reject: (reason?: unknown) => void, displayable: boolean, rejectIfCodeIsNotZero: boolean) {
         childProcess.stdout.on('data', (data) => {
             this.log(data.toString(), false, displayable);
         });
@@ -58,7 +58,7 @@ class ExerciseDockerCompose {
         });
 
         childProcess.on('exit', (code) => {
-            code !== null ? resolve(code) : reject();
+            code === null || (rejectIfCodeIsNotZero && code !== 0) ? reject(code) : resolve(code);
         });
     }
 
@@ -86,7 +86,7 @@ class ExerciseDockerCompose {
                             }
                         });
 
-                        this.registerChildProcess(dockerCompose, resolve, reject, true);
+                        this.registerChildProcess(dockerCompose, resolve, reject, true, false);
                     });
                 } catch ( error ) {
                     this.endStep(`Error while running the docker compose file`, true);
@@ -110,7 +110,7 @@ class ExerciseDockerCompose {
                             shell: true
                         });
 
-                        this.registerChildProcess(dockerCompose, resolve, reject, false);
+                        this.registerChildProcess(dockerCompose, resolve, reject, false, true);
                     });
                 } catch ( error ) {
                     this.endStep(`Error while getting the linked services logs`, true);
@@ -135,10 +135,10 @@ class ExerciseDockerCompose {
                                 shell: true
                             });
 
-                            this.registerChildProcess(dockerCompose, resolve, reject, false);
+                            this.registerChildProcess(dockerCompose, resolve, reject, false, true);
                         });
                     } catch ( error ) {
-                        this.endStep(`Error stop and remove containers`, true);
+                        this.endStep(`Error while stopping and removing containers`, true);
                         this.finished(false, ExerciseCheckerError.DOCKER_COMPOSE_DOWN_ERROR);
                         return;
                     }
@@ -161,7 +161,7 @@ class ExerciseDockerCompose {
                                 shell: true
                             });
 
-                            this.registerChildProcess(dockerCompose, resolve, reject, false);
+                            this.registerChildProcess(dockerCompose, resolve, reject, false, true);
                         });
                     } catch ( error ) {
                         this.endStep(`Error while removing dangling images`, true);