diff --git a/core/lib/Drupal/Core/Field/WidgetBase.php b/core/lib/Drupal/Core/Field/WidgetBase.php
index c99dee5..cf6a526 100644
--- a/core/lib/Drupal/Core/Field/WidgetBase.php
+++ b/core/lib/Drupal/Core/Field/WidgetBase.php
@@ -440,10 +440,13 @@ public function flagErrors(FieldItemListInterface $items, ConstraintViolationLis
             $delta_element = $element[$original_delta];
           }
           foreach ($delta_violations as $violation) {
-            // @todo: Pass $violation->arrayPropertyPath as property path.
-            $error_element = $this->errorElement($delta_element, $violation, $form, $form_state);
-            if ($error_element !== FALSE) {
-              $form_state->setError($error_element, $violation->getMessage());
+            $property_name = $this->fieldDefinition->getFieldStorageDefinition()->getMainPropertyName();
+            if (isset($delta_element[$property_name])) {
+              // @todo: Pass $violation->arrayPropertyPath as property path.
+              $error_element = $this->errorElement($delta_element, $violation, $form, $form_state);
+              if ($error_element !== FALSE) {
+                $form_state->setError($error_element, $violation->getMessage());
+              }
             }
           }
         }
diff --git a/core/modules/field/src/Tests/Number/NumberFieldTest.php b/core/modules/field/src/Tests/Number/NumberFieldTest.php
index 9537170..8e8e073 100644
--- a/core/modules/field/src/Tests/Number/NumberFieldTest.php
+++ b/core/modules/field/src/Tests/Number/NumberFieldTest.php
@@ -8,6 +8,10 @@
 namespace Drupal\field\Tests\Number;
 
 use Drupal\Component\Utility\Unicode;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -496,6 +500,43 @@ function testNumberFormatter() {
   }
 
   /**
+   * Tests required number field in combination with AJAX requests.
+   */
+  function testRequiredNumberFieldAndAjax() {
+
+    // Create a required number field.
+    $field_name = 'required_number';
+    $storage = FieldStorageConfig::create(array(
+      'field_name' => $field_name,
+      'entity_type' => 'entity_test',
+      'type' => 'integer',
+    ));
+    $storage->save();
+
+    FieldConfig::create(array(
+      'field_name' => $field_name,
+      'entity_type' => 'entity_test',
+      'bundle' => 'entity_test',
+      'required' => TRUE,
+    ))->save();
+
+    EntityFormDisplay::load('entity_test.entity_test.default')
+      ->setComponent($field_name, array(
+        'type' => 'number',
+      ))
+      ->save();
+
+    // Set test text field cardinality to unlimited.
+    FieldStorageConfig::load('entity_test.field_test_text')
+      ->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
+      ->save();
+
+    $this->drupalGet('entity_test/add');
+    $this->drupalPostAjaxForm(NULL, array(), 'field_test_text_add_more');
+    $this->assertResponse(200);
+  }
+
+  /**
    * Tests setting the minimum value of a float field through the interface.
    */
   function testCreateNumberFloatField() {
