diff --git a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
index a552a0e..926399e 100644
--- a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
+++ b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
@@ -184,6 +184,9 @@ public function setValue($values, $notify = TRUE) {
     if (isset($values['options']) && is_string($values['options'])) {
       $values['options'] = unserialize($values['options']);
     }
+    if (!isset($values['options'])) {
+      $values['options'] = [];
+    }
     parent::setValue($values, $notify);
   }
 
diff --git a/core/modules/link/src/Tests/LinkItemTest.php b/core/modules/link/src/Tests/LinkItemTest.php
index 8431757..6c4bc9a 100644
--- a/core/modules/link/src/Tests/LinkItemTest.php
+++ b/core/modules/link/src/Tests/LinkItemTest.php
@@ -105,6 +105,11 @@ public function testLinkItem() {
     $entity = entity_create('entity_test');
     $entity->field_test->generateSampleItems();
     $this->entityValidateAndSave($entity);
+
+    $entity->field_test = ['uri' => 'internal:/node/add'];
+    $this->assertEqual($entity->field_test->uri, 'internal:/node/add');
+    $this->assertNull($entity->field_test->title);
+    $this->assertIdentical($entity->field_test->options, []);
   }
 
 }
