diff --git a/src/server/server.c b/src/server/server.c
index 16f751079b017ed9f7c8432b6c2f3882326d5bf7..96f06b3feff65095bde1d1697a1c85b8ca806b55 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -635,6 +635,10 @@ SERVER_PIPE_COMMAND()
 			break;
 		case 1:
 		{
+			if (CMD_CTX->mode == COMMAND_EXEC) {
+				LOG_WARNING("unable to change server port after init");
+				return ERROR_COMMAND_ARGUMENT_INVALID;
+			}
 			const char *t = strdup(CMD_ARGV[0]);
 			free((void *)*out);
 			*out = t;