diff --git a/cluster-autoscaler/estimator/binpacking_estimator.go b/cluster-autoscaler/estimator/binpacking_estimator.go
index eb19aed304e4c7d716c5fd5715e6bf8848a1cbe3..10ed1dfa3d635f3e3ccfae03d77d10bfdcba8f3f 100644
--- a/cluster-autoscaler/estimator/binpacking_estimator.go
+++ b/cluster-autoscaler/estimator/binpacking_estimator.go
@@ -190,7 +190,7 @@ func (e *BinpackingNodeEstimator) tryToScheduleOnNewNodes(
 				// If the pod can't be scheduled on the last node because of topology constraints, we can stop binpacking.
 				// The pod can't be scheduled on any new node either, because it has the same topology constraints.
 				nodeName, err := e.clusterSnapshot.SchedulePodOnAnyNodeMatching(pod, func(nodeInfo *framework.NodeInfo) bool {
-					return true // Node scale-up can cause old nodes to become schedulable, so we check all nodes.
+					return nodeInfo.Node().Name != estimationState.lastNodeName // only skip the last node that failed scheduling
 				})
 				if err != nil && err.Type() == clustersnapshot.SchedulingInternalError {
 					// Unexpected error.