only in patch2: unchanged: --- a/core/lib/Drupal/Core/TypedData/TypedDataManager.php +++ b/core/lib/Drupal/Core/TypedData/TypedDataManager.php @@ -168,9 +168,12 @@ public function getPropertyInstance(TypedDataInterface $object, $property_name, // a shorter string than the serialized form, so array access is faster. $parts[] = json_encode($settings); } - // Property path for the requested data object. When creating a list item, - // use 0 in the key as all items look the same. - $parts[] = $object->getPropertyPath() . '.' . (is_numeric($property_name) ? 0 : $property_name); + // Property path for the requested data object. + // the original code is: + // code$parts[] = $object->getPropertyPath() . '.' . (is_numeric($property_name) ? 0 : $property_name); + // When creating a list item , use 0 in the key as all items look the same. + // But wen Map data use setPropertyDefinition, We may pass an array that has numerical key with different type of value + $parts[] = $object->getPropertyPath() . '.' . $property_name; $key = implode(':', $parts); // Create the prototype if needed.