diff -u b/core/lib/Drupal/Core/Entity/Field/Type/Field.php b/core/lib/Drupal/Core/Entity/Field/Type/Field.php --- b/core/lib/Drupal/Core/Entity/Field/Type/Field.php +++ b/core/lib/Drupal/Core/Entity/Field/Type/Field.php @@ -69,7 +69,7 @@ */ public function setValue($values) { // Support passing in only the value of the first item. - if (!is_array($values) || !is_numeric(current(array_keys($values)))) { + if (!is_array($values) || (!empty($values) && !is_numeric(current(array_keys($values))))) { $values = array(0 => $values); }