diff --git a/src/common/slurmdb_pack.c b/src/common/slurmdb_pack.c
index 1340d9e71877e91bfefd62349a4d6c5bd5035706..bfdac8d76d002b6a090a46b8f00c46d2156917b9 100644
--- a/src/common/slurmdb_pack.c
+++ b/src/common/slurmdb_pack.c
@@ -4638,8 +4638,12 @@ extern int slurmdb_unpack_job_cond(void **object, uint16_t rpc_version,
 			object_ptr->step_list =
 				list_create(slurmdb_destroy_selected_step);
 			for (i=0; i<count; i++) {
-				slurmdb_unpack_selected_step(
-					&job, rpc_version, buffer);
+				if (slurmdb_unpack_selected_step(
+					&job, rpc_version, buffer)
+				    != SLURM_SUCCESS) {
+					error("unpacking selected step");
+					goto unpack_error;
+				}
 				/* There is no such thing as jobid 0,
 				 * if we process it the database will
 				 * return all jobs. */