diff --git a/core/modules/field/field.post_update.php b/core/modules/field/field.post_update.php
index 7476baa467..8eed673605 100644
--- a/core/modules/field/field.post_update.php
+++ b/core/modules/field/field.post_update.php
@@ -82,3 +82,24 @@ function field_post_update_remove_handler_submit_setting() {
     }
   }
 }
+
+/**
+ * Cast 'size' setting of all entity_reference_autocomplete widgets to integers.
+ */
+function field_post_update_entity_reference_autocomplete_widget_size_setting() {
+  /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
+  foreach (EntityFormDisplay::loadMultiple() as $form_display) {
+    $changed = FALSE;
+
+    foreach ($form_display->getComponents() as $key => $component) {
+      if (isset($component['type']) && $component['type'] == 'entity_reference_autcomplete' && isset($component['size']) && is_string($component['size'])) {
+        $component['size'] = (int) $component['size'];
+        $form_display->setComponent($key, $component);
+        $changed = TRUE;
+      }
+    }
+    if ($changed) {
+      $form_display->save();
+    }
+  }
+}
diff --git a/core/modules/field/tests/fixtures/update/drupal-8.entity_reference_autocomplete_widget_size_setting-2885441.php b/core/modules/field/tests/fixtures/update/drupal-8.entity_reference_autocomplete_widget_size_setting-2885441.php
new file mode 100644
index 0000000000..60549f07cb
--- /dev/null
+++ b/core/modules/field/tests/fixtures/update/drupal-8.entity_reference_autocomplete_widget_size_setting-2885441.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * @file
+ * Contains SQL necessary to add a new component for an email field/widget to
+ * the 'node.article.default' entity form display.
+ */
+
+use Drupal\Core\Database\Database;
+
+$connection = Database::getConnection();
+
+$config = $connection->select('config', 'c')
+  ->fields('c')
+  ->condition('collection', '')
+  ->condition('name', 'core.entity_form_display.node.article.default')
+  ->execute()
+  ->fetchAssoc();
+
+$data = unserialize($config['data']);
+
+// Make the size setting a string, as EntityReferenceAutocompleteWidget had
+// previously, erroneously, defined it.
+$data['content']['uid']['settings']['size'] = '60';
+
+$connection->update('config')
+  ->fields(['data' => serialize($data)])
+  ->condition('collection', '')
+  ->condition('name', 'core.entity_form_display.node.article.default')
+  ->execute();
diff --git a/core/modules/field/tests/src/Functional/Update/EntityReferenceAutocompleteWidgetSizeSettingUpdateTest.php b/core/modules/field/tests/src/Functional/Update/EntityReferenceAutocompleteWidgetSizeSettingUpdateTest.php
new file mode 100644
index 0000000000..144adbbe56
--- /dev/null
+++ b/core/modules/field/tests/src/Functional/Update/EntityReferenceAutocompleteWidgetSizeSettingUpdateTest.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Drupal\Tests\field\Functional\Update;
+
+use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+
+/**
+ * Tests the update for the 'size' setting of the 'entity_reference_autcomplete' field widget.
+ *
+ * @group field
+ */
+class EntityReferenceAutocompleteWidgetSizeSettingUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
+      __DIR__ . '/../../../fixtures/update/drupal-8.entity_reference_autocomplete_widget_size_setting-2885441.php',
+    ];
+  }
+
+  public function testUpdate() {
+    $this->runUpdates();
+
+    $size = $this->config('core.entity_form_display.node.article.default')
+      ->get('content.uid.settings.size');
+    $this->assertSame(60, $size);
+  }
+
+}
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/EntityReference/EntityReferenceAutocompleteWidgetTest.php b/core/tests/Drupal/FunctionalJavascriptTests/EntityReference/EntityReferenceAutocompleteWidgetTest.php
index 511dee6e32..4a39ae6b60 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/EntityReference/EntityReferenceAutocompleteWidgetTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/EntityReference/EntityReferenceAutocompleteWidgetTest.php
@@ -49,14 +49,22 @@ public function testEntityReferenceAutocompleteWidget() {
     // operator.
     $field_name = 'field_test';
     $this->createEntityReferenceField('node', 'page', $field_name, $field_name, 'node', 'default', ['target_bundles' => ['page']]);
-    entity_get_form_display('node', 'page', 'default')
+    $form_display = entity_get_form_display('node', 'page', 'default')
       ->setComponent($field_name, [
         'type' => 'entity_reference_autocomplete',
         'settings' => [
           'match_operator' => 'CONTAINS',
         ],
-      ])
-      ->save();
+      ]);
+    $form_display->save();
+
+    // To satisfy config schema, the size setting must be an integer, not just
+    // a numeric value. See https://www.drupal.org/node/2885441.
+    $plugin_collections = $form_display->getPluginCollections();
+    $settings = $plugin_collections['widgets']
+      ->get('entity_reference_autocomplete')
+      ->defaultSettings();
+    $this->assertInternalType('integer', $settings['size']);
 
     // Visit the node add page.
     $this->drupalGet('node/add/page');
