diff --git a/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts b/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
index b755b37b80342781747d08c1277adf2e463e3959..3d664d00a5c11609b121b275a7088021fc378554 100644
--- a/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
+++ b/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
@@ -86,6 +86,20 @@ class AssignmentCreateCommand extends CommanderCommand {
         }
         languagesSpinner.succeed(`Language "${ options.language }" is supported`);
 
+        if ( (this.sonarGate ?? '') !== '' || this.sonarProfiles.length > 0 ) {
+            const qualitiesSpinner: ora.Ora = ora('Checking sonar qualities').start();
+
+            // SonarQube quality gate and profiles
+            const result = await DojoBackendManager.testSonarQualities(this.sonarGate ?? '', this.sonarProfiles);
+            if ( !result.valid ) {
+                const invalid = (result.badGate == undefined ? result.badProfiles : [ result.badGate, ...result.badProfiles ]);
+                qualitiesSpinner.fail(`Invalid quality gate or profiles : ${ invalid }`);
+                throw new Error();
+            }
+
+            qualitiesSpinner.succeed(`Quality gate and profiles are valid`);
+        }
+
         // SonarQube languages
         if ( this.sonar ) {
             const sonarLang = await DojoBackendManager.getSonarLanguages();
diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index e82c9037c470d70bd420b61cb313ffc200769d90..939e68467478e117eb1a9236e358e96e7d6507b8 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -393,6 +393,15 @@ class DojoBackendManager {
         return resp.data.data;
     }
 
+    public async testSonarQualities(gate: string, profiles: string[]) {
+        const resp = await axios.post<DojoBackendResponse<{ valid: boolean, badProfiles: string[], badGate: string | undefined }>>(
+            this.getApiUrl(ApiRoute.SONAR_QUALITIES), {
+                gate: gate,
+                profiles: profiles,
+            });
+        return resp.data.data;
+    }
+
     public async createTag(name: string, type: string, verbose: boolean = true): Promise<Tag | undefined> {
         const spinner: ora.Ora = ora('Creating tag...');