diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index a1160fa29d6643f9ae7bb6b9f3a572cb309c350b..d9271feb9750061f0fbaf61df3add24091cea84c 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1179,10 +1179,11 @@ function _node_access_rebuild_batch_operation(&$context) {
     ->execute();
   $node_storage->resetCache($nids);
   $nodes = Node::loadMultiple($nids);
-  foreach ($nodes as $nid => $node) {
+  foreach ($nids as $nid) {
     // To preserve database integrity, only write grants if the node
     // loads successfully.
-    if (!empty($node)) {
+    if (!empty($nodes[$nid])) {
+      $node = $nodes[$nid];
       /** @var \Drupal\node\NodeAccessControlHandlerInterface $access_control_handler */
       $access_control_handler = \Drupal::entityTypeManager()->getAccessControlHandler('node');
       $grants = $access_control_handler->acquireGrants($node);
diff --git a/core/phpstan-baseline.neon b/core/phpstan-baseline.neon
index cf0e1578018b2bc8b5092c83f5f3dc31fed7e710..113f73abdc042d40f84370498d2c54f371342439 100644
--- a/core/phpstan-baseline.neon
+++ b/core/phpstan-baseline.neon
@@ -1675,11 +1675,6 @@ parameters:
 			count: 1
 			path: modules/node/node.module
 
-		-
-			message: "#^Variable \\$node in empty\\(\\) always exists and is not falsy\\.$#"
-			count: 1
-			path: modules/node/node.module
-
 		-
 			message: "#^Method Drupal\\\\node\\\\ConfigTranslation\\\\NodeTypeMapper\\:\\:setEntity\\(\\) should return bool but return statement is missing\\.$#"
 			count: 1