diff --git a/helpers/Dojo/AssignmentValidator.ts b/helpers/Dojo/AssignmentValidator.ts
index a22d9f61c667f154d5c101ad26f2ebbba02e420a..f9604ab38ee87a67bcc84c6fcc3edd05ca7f5cfe 100644
--- a/helpers/Dojo/AssignmentValidator.ts
+++ b/helpers/Dojo/AssignmentValidator.ts
@@ -301,12 +301,17 @@ class AssignmentValidator {
 
                 const runSuccess = SonarAnalyzer.runAnalysis(assignment.sonarKey, assignment.language, assignmentFile.buildLine);
                 if ( runSuccess ) {
-                    this.emitError(`Sonar gate failed`, 'Sonar analysis failure', AssignmentCheckerError.SONAR_ANALYSIS_FAILED);
-                    return;
+                    if ( !assignment.allowSonarFailure ) {
+                        this.emitError(`Sonar gate failed`, 'Sonar analysis failure', AssignmentCheckerError.SONAR_ANALYSIS_FAILED);
+                        return;
+                    } else {
+                        this.endSubStep('Sonar gate failed, you should check the sonar project', false);
+                    }
+                } else {
+                    this.endSubStep('Sonar gate passed', false);
                 }
-                this.endSubStep('Sonar gate passed', false);
 
-                this.endStep('Sonar analysis success', false);
+                this.endStep('Sonar analysis finished', false);
             }
 
 
diff --git a/models/Assignment.ts b/models/Assignment.ts
index 843b6b45e1437379b2bfd4395e0a41331858534b..55dd7f1035bfc98944c224a197636e189fb0ea4c 100644
--- a/models/Assignment.ts
+++ b/models/Assignment.ts
@@ -13,6 +13,7 @@ interface Assignment {
     gitlabLastInfoDate: string;
     published: boolean;
     useSonar: boolean;
+    allowSonarFailure: boolean;
     sonarKey: string;
     sonarCreationInfo: SonarProjectCreation;
     language: Language;