diff --git a/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts b/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
index 4d5e781f61ee50584fcf28db104bd0af9ea358d9..cec139c5ab6fbf564f22e989a8d4be1d598ce36b 100644
--- a/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
+++ b/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
@@ -29,12 +29,13 @@ class AssignmentCreateCommand extends CommanderCommand {
         if (SharedConfig.sonar.enabled) {
             this.command.requiredOption('-s, --sonar', 'add sonar to the code checking process for assignment and exercises')
                 .requiredOption('-d, --no-sonar', 'disable sonar for the code checking process for assignment and exercises')
+                .addOption(new Option('--sonar-strict', 'force the sonar gate to pass to validate the exercise results').default(false).implies({sonar: true}))
                 .addOption(new Option('-g, --gate <gate>', 'quality gate for sonar').implies({sonar: true}))
-                .addOption(new Option('-p, --profile <profile...>', 'quality profiles for sonar').default([]).implies({sonar: true}));
+                .addOption(new Option('-p, --profile <profile...>', 'quality profiles for sonar').default([]).implies({sonar: true}))
         }
     }
 
-    protected async commandAction(options: { name: string, language: string, template?: string, members_id?: Array<number>, members_username?: Array<string>, clone?: string | boolean, sonar?: boolean, gate?: string, profile?: string[]}): Promise<void> {
+    protected async commandAction(options: { name: string, language: string, template?: string, members_id?: Array<number>, members_username?: Array<string>, clone?: string | boolean, sonar?: boolean, sonarStrict: boolean, gate?: string, profile?: string[]}): Promise<void> {
         let members!: Array<GitlabUser> | false;
         let templateIdOrNamespace: string | null = null;
         let assignment!: Assignment;
@@ -129,7 +130,7 @@ class AssignmentCreateCommand extends CommanderCommand {
             console.log(chalk.cyan('Please wait while we are creating the assignment (approximately 10 seconds)...'));
 
             try {
-                assignment = await DojoBackendManager.createAssignment(options.name, options.language, members, templateIdOrNamespace, sonar, sonarGate, sonarProfiles);
+                assignment = await DojoBackendManager.createAssignment(options.name, options.language, members, templateIdOrNamespace, sonar, !options.sonarStrict, sonarGate, sonarProfiles);
 
                 const oraInfo = (message: string) => {
                     ora({
diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index 441f249f31133909a455ef922f8f45f39ba21ec0..631aae02dd60d0db7afab4df4d9740e219f50879 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -83,7 +83,7 @@ class DojoBackendManager {
         }
     }
 
-    public async createAssignment(name: string, language: string, members: Array<GitlabUser>, templateIdOrNamespace: string | null, sonar: boolean = false, sonarGate: string | undefined = undefined, sonarProfiles: string[] = [], verbose: boolean = true): Promise<Assignment> {
+    public async createAssignment(name: string, language: string, members: Array<GitlabUser>, templateIdOrNamespace: string | null, sonar: boolean = false, allowSonarFailure: boolean = false, sonarGate: string | undefined = undefined, sonarProfiles: string[] = [], verbose: boolean = true): Promise<Assignment> {
         const spinner: ora.Ora = ora('Creating assignment...');
 
         if ( verbose ) {
@@ -92,12 +92,13 @@ class DojoBackendManager {
 
         try {
             const response = await axios.post<DojoBackendResponse<Assignment>>(this.getApiUrl(ApiRoute.ASSIGNMENT_CREATE), Object.assign({
-                                                                                                                                             name     : name,
-                                                                                                                                             language : language,
-                                                                                                                                             members  : JSON.stringify(members),
-                                                                                                                                             useSonar : String(sonar),
-                                                                                                                                             sonarGate: sonarGate ?? '',
-                                                                                                                                             sonarProfiles : JSON.stringify(sonarProfiles),
+                                                                                                                                             name             : name,
+                                                                                                                                             language         : language,
+                                                                                                                                             members          : JSON.stringify(members),
+                                                                                                                                             useSonar         : String(sonar),
+                                                                                                                                             allowSonarFailure: String(allowSonarFailure),
+                                                                                                                                             sonarGate        : sonarGate ?? '',
+                                                                                                                                             sonarProfiles    : JSON.stringify(sonarProfiles),
                                                                                                                                          }, templateIdOrNamespace ? { template: templateIdOrNamespace } : {}));
 
             if ( verbose ) {
diff --git a/NodeApp/src/sharedByClients b/NodeApp/src/sharedByClients
index d15be9b16181f5f172d51b13966e0e44bd34f55d..047bc2e9e1c2ef6eed1c04806c2cba8e08bb1c3e 160000
--- a/NodeApp/src/sharedByClients
+++ b/NodeApp/src/sharedByClients
@@ -1 +1 @@
-Subproject commit d15be9b16181f5f172d51b13966e0e44bd34f55d
+Subproject commit 047bc2e9e1c2ef6eed1c04806c2cba8e08bb1c3e