reverted:
--- b/core/modules/jsonapi/src/Context/FieldResolver.php
+++ a/core/modules/jsonapi/src/Context/FieldResolver.php
@@ -352,6 +352,7 @@
           $property_definition = $property_definitions[$property_name];
           $is_data_reference_definition = $property_definition instanceof DataReferenceTargetDefinition;
           if (!$property_definition->isInternal()) {
+            // Entity reference fields are special: their reference property
             // (usually `target_id`) is exposed in the JSON:API representation
             // with a prefix.
             $property_names[] = $is_data_reference_definition ? 'id' : $property_name;
@@ -686,6 +687,7 @@
    */
   protected static function isCandidateDefinitionProperty($part, array $candidate_definitions) {
     $part = static::getPathPartPropertyName($part);
+    foreach ($candidate_definitions as $definition) {
       $property_definitions = $definition->getPropertyDefinitions();
 
       foreach ($property_definitions as $property_name => $property_definition) {
@@ -696,6 +698,7 @@
           return TRUE;
         }
       }
+    }
     return FALSE;
   }
 
diff -u b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php
--- b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php
@@ -1431,7 +1431,3 @@
   }
 
 }
-
-/**
- * Ensure includes are respected even when PATCHing.
- *
\ No newline at end of file
