diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index b9449f040ac7a4869b30058e71f8868ee5259e2f..cb8aaaa93eb054da3e310b1733c9e27a78f657ff 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -1368,6 +1368,22 @@ static void _slurm_rpc_allocate_pack(slurm_msg_t * msg)
 			break;
 		}
 
+		/*
+		 * Old versions of Slurm don't work with het jobs and Cray
+		 * This can be removed 2 versions after 19.05.
+		 */
+		if ((msg->protocol_version < SLURM_19_05_PROTOCOL_VERSION) &&
+		    ((job_desc_msg->select_jobinfo->plugin_id ==
+		      SELECT_PLUGIN_CRAY_LINEAR) ||
+		     (job_desc_msg->select_jobinfo->plugin_id ==
+		      SELECT_PLUGIN_CRAY_CONS_RES) ||
+		     (job_desc_msg->select_jobinfo->plugin_id ==
+		      SELECT_PLUGIN_CRAY_CONS_TRES))) {
+			err_msg = xstrdup("Het jobs from old Slurm versions are not possible");
+			error_code = SLURM_PROTOCOL_VERSION_ERROR;
+			break;
+		}
+
 		/* use the credential to validate where we came from */
 		if (hostname) {
 			xfree(job_desc_msg->alloc_node);