diff --git a/src/common/slurmdb_defs.c b/src/common/slurmdb_defs.c
index d094b91588c063fe0700d23963e9fa237d7117bc..d50a728e2c18b3c0eb35f41dd00f1f91465a119e 100644
--- a/src/common/slurmdb_defs.c
+++ b/src/common/slurmdb_defs.c
@@ -2158,8 +2158,14 @@ extern uint32_t slurmdb_parse_purge(char *string)
 extern char *slurmdb_purge_string(uint32_t purge, char *string, int len,
 				  bool with_archive)
 {
-	uint32_t units = SLURMDB_PURGE_GET_UNITS(purge);
+	uint32_t units;
 
+	if (purge == NO_VAL) {
+		snprintf(string, len, "NONE");
+		return string;
+	}
+
+	units = SLURMDB_PURGE_GET_UNITS(purge);
 	if (SLURMDB_PURGE_IN_HOURS(purge)) {
 		if (with_archive && SLURMDB_PURGE_ARCHIVE_SET(purge))
 			snprintf(string, len, "%u hours*", units);