diff --git a/NodeApp/src/commander/assignment/subcommands/AssignmentPublishUnpublishCommandBase.ts b/NodeApp/src/commander/assignment/subcommands/AssignmentPublishUnpublishCommandBase.ts
index b82805174b5e8b177f475086d752ce440161deeb..2c225445e524bb4b5611062aa9230e1eed2f24e4 100644
--- a/NodeApp/src/commander/assignment/subcommands/AssignmentPublishUnpublishCommandBase.ts
+++ b/NodeApp/src/commander/assignment/subcommands/AssignmentPublishUnpublishCommandBase.ts
@@ -1,10 +1,11 @@
-import CommanderCommand   from '../../CommanderCommand';
-import inquirer           from 'inquirer';
-import chalk              from 'chalk';
-import SessionManager     from '../../../managers/SessionManager';
-import ora                from 'ora';
-import DojoBackendManager from '../../../managers/DojoBackendManager';
-import Assignment         from '../../../sharedByClients/models/Assignment';
+import CommanderCommand       from '../../CommanderCommand';
+import inquirer               from 'inquirer';
+import chalk                  from 'chalk';
+import SessionManager         from '../../../managers/SessionManager';
+import ora                    from 'ora';
+import DojoBackendManager     from '../../../managers/DojoBackendManager';
+import Assignment             from '../../../sharedByClients/models/Assignment';
+import SharedAssignmentHelper from '../../../shared/helpers/Dojo/SharedAssignmentHelper';
 
 
 abstract class AssignmentPublishUnpublishCommandBase extends CommanderCommand {
@@ -21,7 +22,9 @@ abstract class AssignmentPublishUnpublishCommandBase extends CommanderCommand {
     protected async commandAction(assignmentNameOrUrl: string, options: { force: boolean }): Promise<void> {
         if ( !options.force ) {
             options.force = (await inquirer.prompt({
-                                                       type: 'confirm', name: 'force', message: this.publish ? 'Are you sure you want to publish this assignment?' : 'Are you sure you want to unpublish this assignment?'
+                                                       type   : 'confirm',
+                                                       name   : 'force',
+                                                       message: this.publish ? 'Are you sure you want to publish this assignment?' : 'Are you sure you want to unpublish this assignment?'
                                                    })).force;
         }
 
@@ -40,10 +43,12 @@ abstract class AssignmentPublishUnpublishCommandBase extends CommanderCommand {
 
             ora('Checking assignment:').start().info();
             ora({
-                    text: assignmentNameOrUrl, indent: 4
+                    text  : assignmentNameOrUrl,
+                    indent: 4
                 }).start().info();
             const assignmentGetSpinner: ora.Ora = ora({
-                                                          text: 'Checking if assignment exists', indent: 8
+                                                          text  : 'Checking if assignment exists',
+                                                          indent: 8
                                                       }).start();
             assignment = await DojoBackendManager.getAssignment(assignmentNameOrUrl);
             if ( !assignment ) {
@@ -52,6 +57,7 @@ abstract class AssignmentPublishUnpublishCommandBase extends CommanderCommand {
             }
             assignmentGetSpinner.succeed(`The assignment exists`);
 
+
             const assignmentCheckAccessSpinner: ora.Ora = ora({
                                                                   text: 'Checking accesses', indent: 8
                                                               }).start();
@@ -60,6 +66,18 @@ abstract class AssignmentPublishUnpublishCommandBase extends CommanderCommand {
                 return;
             }
             assignmentCheckAccessSpinner.succeed(`You are in the staff of this assignment`);
+
+
+            const assignmentIsPublishable: ora.Ora = ora({
+                                                             text  : 'Checking if the assignment is publishable',
+                                                             indent: 8
+                                                         }).start();
+            const isPublishable = await SharedAssignmentHelper.isPublishable(assignment.gitlabId);
+            if ( !isPublishable.isPublishable ) {
+                assignmentIsPublishable.fail(`The assignment is not publishable: ${ isPublishable.status?.message }`);
+                return;
+            }
+            assignmentIsPublishable.succeed(`The assignment is publishable`);
         }
 
         {