diff --git a/src/JsonApi/Serializer/ItemNormalizer.php b/src/JsonApi/Serializer/ItemNormalizer.php index 3ecb096b0f..76e7dc0607 100644 --- a/src/JsonApi/Serializer/ItemNormalizer.php +++ b/src/JsonApi/Serializer/ItemNormalizer.php @@ -551,10 +551,19 @@ private function getRelatedResources(object $object, ?string $format, array $con */ private function addIncluded(array $data, array &$included, array &$context): void { - if (isset($data['id']) && !\in_array($data['id'], $context['api_included_resources'], true)) { + if (!isset($data['id'], $data['type'])) { + return; + } + + $iriLike = $data['type'] . ':' . $data['id']; + + // Initialize tracking array if needed + $context['api_included_resources'] ??= []; + + if (!\in_array($iriLike, $context['api_included_resources'], true)) { $included[] = $data; // Track already included resources - $context['api_included_resources'][] = $data['id']; + $context['api_included_resources'][] = $iriLike; } }