diff --git a/src/Tests/Classic/ParagraphsConfigTest.php b/src/Tests/Classic/ParagraphsConfigTest.php
index 8d2d79c..11ba142 100644
--- a/src/Tests/Classic/ParagraphsConfigTest.php
+++ b/src/Tests/Classic/ParagraphsConfigTest.php
@@ -157,7 +157,7 @@ class ParagraphsConfigTest extends ParagraphsTestBase {
       'title[0][value]' => 'test_title',
     ];
     $this->drupalPostForm(NULL, $edit, 'Save and publish');
-    $this->assertText('This value should not be null.');
+    $this->assertText('paragraphs field is required.');
     $this->drupalPostAjaxForm(NULL, [], 'paragraphs_paragraph_type_test_add_more');
     $this->drupalPostForm(NULL, $edit, 'Save and publish');
     $this->assertText('paragraphed_test test_title has been created.');
diff --git a/src/Tests/Classic/ParagraphsUiTest.php b/src/Tests/Classic/ParagraphsUiTest.php
new file mode 100644
index 0000000..253fa00
--- /dev/null
+++ b/src/Tests/Classic/ParagraphsUiTest.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Drupal\paragraphs\Tests\Classic;
+
+use Drupal\field_ui\Tests\FieldUiTestTrait;
+
+/**
+ * Tests the Paragraphs user interface.
+ *
+ * @group paragraphs
+ */
+class ParagraphsUiTest extends ParagraphsTestBase {
+
+  use FieldUiTestTrait;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'paragraphs_demo',
+  ];
+
+  /**
+   * Tests displaying an error message a required paragraph field that is empty.
+   */
+  public function testEmptyRequiredField() {
+    $admin_user = $this->drupalCreateUser([
+      'administer node fields',
+      'administer paragraph form display',
+      'administer node form display',
+      'create paragraphed_content_demo content',
+      'edit any paragraphed_content_demo content',
+    ]);
+    $this->drupalLogin($admin_user);
+    // Add required field to paragraphed content type.
+    $field_title = 'Content Test';
+    $edit = [
+      'new_storage_type' => 'field_ui:entity_reference_revisions:paragraph',
+      'label' => $field_title,
+      'field_name' => 'content',
+    ];
+    $this->drupalPostForm('admin/structure/types/manage/paragraphed_content_demo/fields/add-field', $edit, t('Save and continue'));
+    $this->drupalPostForm(NULL, [], t('Save field settings'));
+    $edit = [
+      'required' => TRUE,
+    ];
+    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->assertText('Saved ' . $field_title . ' configuration.');
+
+    // Attempt to create a paragraphed node with an empty required field.
+    $title = 'Empty';
+    $this->drupalGet('node/add/paragraphed_content_demo');
+    $this->drupalPostForm(NULL, ['title[0][value]' => $title], t('Save'));
+    $this->assertText($field_title . ' field is required');
+
+    // Attempt to create a paragraphed node with only a paragraph in the
+    // "remove" mode in the required field.
+    $title = 'Remove mode';
+    $this->drupalGet('node/add/paragraphed_content_demo');
+    $this->drupalPostAjaxForm(NULL, [], 'field_paragraphs_demo_image_text_add_more');
+    $this->drupalPostAjaxForm(NULL, [], 'field_paragraphs_demo_0_remove');
+    $this->assertNoText($field_title . ' field is required');
+    $this->drupalPostForm(NULL, ['title[0][value]' => $title], t('Save'));
+    $this->assertText($field_title . ' field is required');
+  }
+
+}
diff --git a/src/Tests/Experimental/ParagraphsExperimentalUiTest.php b/src/Tests/Experimental/ParagraphsExperimentalUiTest.php
new file mode 100644
index 0000000..c798380
--- /dev/null
+++ b/src/Tests/Experimental/ParagraphsExperimentalUiTest.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Drupal\paragraphs\Tests\Experimental;
+
+use Drupal\field_ui\Tests\FieldUiTestTrait;
+
+/**
+ * Tests the Paragraphs user interface.
+ *
+ * @group paragraphs
+ */
+class ParagraphsExperimentalUiTest extends ParagraphsExperimentalTestBase {
+
+  use FieldUiTestTrait;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'paragraphs_demo',
+  ];
+
+  /**
+   * Tests displaying an error message a required paragraph field that is empty.
+   */
+  public function testEmptyRequiredField() {
+    $admin_user = $this->drupalCreateUser([
+      'administer node fields',
+      'administer paragraph form display',
+      'administer node form display',
+      'create paragraphed_content_demo content',
+      'edit any paragraphed_content_demo content',
+    ]);
+    $this->drupalLogin($admin_user);
+    // Add required field to paragraphed content type.
+    $field_title = 'Content Test';
+    $edit = [
+      'new_storage_type' => 'field_ui:entity_reference_revisions:paragraph',
+      'label' => $field_title,
+      'field_name' => 'content',
+    ];
+    $this->drupalPostForm('admin/structure/types/manage/paragraphed_content_demo/fields/add-field', $edit, t('Save and continue'));
+    $this->drupalPostForm(NULL, [], t('Save field settings'));
+    $edit = [
+      'required' => TRUE,
+    ];
+    $this->drupalPostForm(NULL, $edit, 'Save settings');
+    $this->assertText('Saved ' . $field_title . ' configuration.');
+
+    // Attempt to create a paragraphed node with an empty required field.
+    $title = 'Empty';
+    $this->drupalGet('node/add/paragraphed_content_demo');
+    $this->drupalPostForm(NULL, ['title[0][value]' => $title], t('Save'));
+    $this->assertText($field_title . ' field is required');
+
+    // Attempt to create a paragraphed node with only a paragraph in the
+    // "remove" mode in the required field.
+    $title = 'Remove mode';
+    $this->drupalGet('node/add/paragraphed_content_demo');
+    $this->drupalPostAjaxForm(NULL, [], 'field_paragraphs_demo_image_text_add_more');
+    $this->drupalPostAjaxForm(NULL, [], 'field_paragraphs_demo_0_remove');
+    $this->assertNoText($field_title . ' field is required');
+    $this->drupalPostForm(NULL, ['title[0][value]' => $title], t('Save'));
+    $this->assertText($field_title . ' field is required');
+  }
+
+}
