diff --git a/src/plugins/node_features/knl_cray/node_features_knl_cray.c b/src/plugins/node_features/knl_cray/node_features_knl_cray.c
index df2ebe1686d3caa8e165f94c25fbbf671604c875..6d3c210226272a48b254200838e53c887e4410e1 100644
--- a/src/plugins/node_features/knl_cray/node_features_knl_cray.c
+++ b/src/plugins/node_features/knl_cray/node_features_knl_cray.c
@@ -1779,6 +1779,18 @@ extern int node_features_p_job_valid(char *job_features)
 	if (numa_cnt > 1)			/* Multiple NUMA options */
 		return ESLURM_INVALID_KNL;
 
+	/* snc4 only allowed with cache today due to invalid config information
+	 * reported by kernel to hwloc, then to Slurm */
+	if (!job_numa) {
+	    job_numa = default_numa;
+	}
+	if (!job_mcdram) {
+	    job_mcdram = default_mcdram;
+	}
+	if (job_numa == KNL_SNC4 && job_mcdram != KNL_CACHE) {
+		return ESLURM_INVALID_KNL;
+	}
+
 	return SLURM_SUCCESS;
 }