diff --git a/src/plugins/sched/backfill/backfill.c b/src/plugins/sched/backfill/backfill.c
index 82e48e1c265ac3c1405e2111683a02e3a9664e52..a9e57a3fecd553d8b90f7307861ff1fc0e943673 100644
--- a/src/plugins/sched/backfill/backfill.c
+++ b/src/plugins/sched/backfill/backfill.c
@@ -1088,12 +1088,12 @@ static int _attempt_backfill(void)
 				job_ptr->start_time = 0;
 				continue;
 			} else if (rc != SLURM_SUCCESS) {
-				if (debug_flags & DEBUG_FLAG_BACKFILL) {
-					info("backfill: planned start of job "
-					     "%u failed", job_ptr->job_id);
-				}
-				job_ptr->start_time = 0;
-				break;
+				error("backfill: planned start of job %u "
+				      "failed: %s", job_ptr->job_id,
+				      slurm_strerror(rc));
+				/* Drop through and reserve these resources */
+				job_ptr->time_limit = orig_time_limit;
+				later_start = 0;
 			} else {
 				/* Started this job, move to next one */
 				reject_array_job_id = 0;
@@ -1147,7 +1147,8 @@ static int _attempt_backfill(void)
 			      backfill_resolution;
 		end_reserve = (end_reserve / backfill_resolution) *
 			      backfill_resolution;
-		if (_test_resv_overlap(node_space, avail_bitmap,
+		if ((job_ptr->start_time > now) &&
+		    _test_resv_overlap(node_space, avail_bitmap,
 				       start_time, end_reserve)) {
 			/* This job overlaps with an existing reservation for
 			 * job to be backfill scheduled, which the sched