diff --git a/src/Form/JsonapiResourceConfigForm.php b/src/Form/JsonapiResourceConfigForm.php
index 256d854..2228ed3 100644
--- a/src/Form/JsonapiResourceConfigForm.php
+++ b/src/Form/JsonapiResourceConfigForm.php
@@ -164,6 +164,40 @@ class JsonapiResourceConfigForm extends EntityForm {
   /**
    * {@inheritdoc}
    */
+  public function validateForm(array &$form, FormStateInterface $form_state) {
+    $form_values = $form_state->getValues();
+    $resourceFields = $form_values['resourceFields'];
+    $overrides = [];
+
+    // Get the field values
+    foreach ($resourceFields as $field => $data) {
+      // Only get the overridden fields.
+      if ($data['fieldName'] != $data['publicName']) {
+        // Store the publicName for comparison.
+        $overrides[$field] = $data['publicName'];
+      }
+    }
+
+    // Compare the overrides and find any duplicate values.
+    $deduped_overrides = array_unique($overrides);
+    $dupes = array_diff_assoc($overrides, $deduped_overrides);
+    // Set an error if there are duplicates.
+    if ($dupes) {
+      foreach ($dupes as $field => $value) {
+        $form_state->setErrorbyName('resourceFields][' . $field . '][publicName', $this->t('The override must be unique.'));
+      }
+    }
+    // Now compare the overrides with the default names to validate no dupes exist.
+    foreach ($overrides as $field => $override) {
+      if (array_key_exists($override, $resourceFields)) {
+        $form_state->setErrorByName('resourceFields][' . $field . '][publicName', $this->t('The override must be unique.'));
+      }
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function save(array $form, FormStateInterface $form_state) {
     $resource_config = $this->entity;
     $status = $resource_config->save();
