diff --git a/fillpdf.install b/fillpdf.install
index 9ac2ada6698a4e43787bef32ce2dc4e01776fb8c..6b710d250c918800593b4a3c9ada3dadcc4834fa 100644
--- a/fillpdf.install
+++ b/fillpdf.install
@@ -278,3 +278,30 @@ function fillpdf_update_8111() {
   $edum->installFieldStorageDefinition('owner_password', 'fillpdf_form', 'fillpdf_form', $owner_password);
   $edum->installFieldStorageDefinition('user_password', 'fillpdf_form', 'fillpdf_form', $user_password);
 }
+
+/**
+ * Increase maximum length for pdf_key.
+ */
+function fillpdf_update_9501() {
+  $db = \Drupal::database();
+
+  $transaction = $db->startTransaction();
+
+  // Update field storage definition.
+  $edum = \Drupal::entityDefinitionUpdateManager();
+  $field_storage_definition = $edum->getFieldStorageDefinition('pdf_key', 'fillpdf_form_field');
+  $field_storage_definition->setSetting('type', 'string_long');
+  $edum->updateFieldStorageDefinition($field_storage_definition);
+
+  // Update database schema.
+  $spec = [
+    'type' => 'text',
+    'size' => 'big',
+  ];
+  $db
+    ->schema()
+    ->changeField('fillpdf_fields', 'pdf_key', 'pdf_key', $spec);
+
+  // Commit transaction.
+  unset($transaction);
+}
diff --git a/src/Entity/FillPdfFormField.php b/src/Entity/FillPdfFormField.php
index 18fa69c58b36d7b04b0f8f60227b7627dd4ffbb7..a8f326b000e2fa91786971973f77971b9098086e 100644
--- a/src/Entity/FillPdfFormField.php
+++ b/src/Entity/FillPdfFormField.php
@@ -56,7 +56,7 @@ class FillPdfFormField extends ContentEntityBase implements FillPdfFormFieldInte
       ->setDescription(t('The UUID of the FillPdfFormField entity.'))
       ->setReadOnly(TRUE);
 
-    $fields['pdf_key'] = BaseFieldDefinition::create('string')
+    $fields['pdf_key'] = BaseFieldDefinition::create('string_long')
       ->setLabel(t('PDF Key'))
       ->setDescription(t('The name of the field in the PDF form.'));