diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
index a43cefe..86dc60e 100644
--- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
+++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
@@ -1,18 +1,15 @@
 <?php
 
-/**
- * Contains \Drupal\dropzonejs_eb_widget\Plugin\EntityBrowser\Widget\DropzoneJsEbWidget.
- */
-
 namespace Drupal\dropzonejs_eb_widget\Plugin\EntityBrowser\Widget;
 
 use Drupal\Component\Utility\Bytes;
 use Drupal\Component\Utility\NestedArray;
-use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Session\AccountProxyInterface;
 use Drupal\dropzonejs\DropzoneJsUploadSaveInterface;
 use Drupal\entity_browser\WidgetBase;
+use Drupal\entity_browser\WidgetValidationManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
@@ -52,13 +49,17 @@ class DropzoneJsEbWidget extends WidgetBase {
    *   The plugin implementation definition.
    * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
    *   Event dispatcher service.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager service.
+   * @param \Drupal\entity_browser\WidgetValidationManager $validation_manager
+   *   The Widget Validation Manager service.
    * @param \Drupal\dropzonejs\DropzoneJsUploadSaveInterface $dropzonejs_upload_save
    *   The upload saving dropzonejs service.
    * @param \Drupal\Core\Session\AccountProxyInterface $current_user
    *   The current user service.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, EventDispatcherInterface $event_dispatcher, EntityManagerInterface $entity_manager, DropzoneJsUploadSaveInterface $dropzonejs_upload_save, AccountProxyInterface $current_user) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition, $event_dispatcher, $entity_manager);
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, EventDispatcherInterface $event_dispatcher, EntityTypeManagerInterface $entity_type_manager, WidgetValidationManager $validation_manager, DropzoneJsUploadSaveInterface $dropzonejs_upload_save, AccountProxyInterface $current_user) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition, $event_dispatcher, $entity_type_manager, $validation_manager);
     $this->dropzoneJsUploadSave = $dropzonejs_upload_save;
     $this->currentUser = $current_user;
   }
@@ -72,7 +73,8 @@ class DropzoneJsEbWidget extends WidgetBase {
       $plugin_id,
       $plugin_definition,
       $container->get('event_dispatcher'),
-      $container->get('entity.manager'),
+      $container->get('entity_type.manager'),
+      $container->get('plugin.manager.entity_browser.widget_validation'),
       $container->get('dropzonejs.upload_save'),
       $container->get('current_user')
     );
@@ -114,8 +116,21 @@ class DropzoneJsEbWidget extends WidgetBase {
   /**
    * {@inheritdoc}
    */
-  public function validate(array &$form, FormStateInterface $form_state) {
+  public function prepareEntities(array $form, FormStateInterface $form_state) {
     $upload = $form_state->getValue(['upload'], []);
+    $uploaded_files = isset($upload['uploaded_files']) ? $upload['uploaded_files'] : [];
+    $entities = [];
+    foreach ($uploaded_files as $file) {
+      $entities[] = $this->dropzoneJsUploadSave->fileEntityFromUri($file['path'], $this->currentUser);
+    }
+    return $entities;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validate(array &$form, FormStateInterface $form_state) {
+    $files = $this->prepareEntities($form, $form_state);
     $trigger = $form_state->getTriggeringElement();
     $config = $this->getConfiguration();
 
@@ -127,13 +142,12 @@ class DropzoneJsEbWidget extends WidgetBase {
     // right extensions. Although DropzoneJS should not even upload those files
     // it's still better not to rely only on client side validation.
     if ($trigger['#value'] == 'Select') {
-      if (!empty($upload['uploaded_files'])) {
+      if (!empty($files)) {
         $errors = [];
         // @todo Check per user size allowance.
         $additional_validators = ['file_validate_size' => [Bytes::toInt($max_filesize), 0]];
 
-        foreach ($upload['uploaded_files'] as $file) {
-          $file = $this->dropzoneJsUploadSave->fileEntityFromUri($file['path'], $this->currentUser);
+        foreach ($files as $file) {
           $errors += $this->dropzoneJsUploadSave->validateFile($file, $extensions, $additional_validators);
         }
 
@@ -145,6 +159,11 @@ class DropzoneJsEbWidget extends WidgetBase {
       else {
         $form_state->setError($form['widget']['upload'], t('At least one valid file should be uploaded.'));
       }
+
+      // If there weren't any errors set, run the normal validators.
+      if (empty($form_state->getErrors())) {
+        parent::validate($form, $form_state);
+      }
     }
   }
 
diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php
index fa764dd..ad70f54 100644
--- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php
+++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php
@@ -6,10 +6,7 @@
 
 namespace Drupal\dropzonejs_eb_widget\Plugin\EntityBrowser\Widget;
 
-use Drupal\Component\Utility\Bytes;
-use Drupal\Component\Utility\NestedArray;
-use Drupal\Core\Entity\EntityManagerInterface;
-use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Link;
@@ -17,7 +14,7 @@ use Drupal\Core\Session\AccountProxyInterface;
 use Drupal\dropzonejs\DropzoneJsUploadSaveInterface;
 use Drupal\dropzonejs\Events\DropzoneMediaEntityCreateEvent;
 use Drupal\dropzonejs\Events\Events;
-use Drupal\entity_browser\WidgetBase;
+use Drupal\entity_browser\WidgetValidationManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
@@ -51,6 +48,10 @@ class MediaEntityDropzoneJsEbWidget extends DropzoneJsEbWidget {
    *   The plugin implementation definition.
    * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
    *   Event dispatcher service.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager service.
+   * @param \Drupal\entity_browser\WidgetValidationManager $validation_manager
+   *   The Widget Validation Manager service.
    * @param \Drupal\dropzonejs\DropzoneJsUploadSaveInterface $dropzonejs_upload_save
    *   The upload saving dropzonejs service.
    * @param \Drupal\Core\Session\AccountProxyInterface $current_user
@@ -58,8 +59,8 @@ class MediaEntityDropzoneJsEbWidget extends DropzoneJsEbWidget {
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler service.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, EventDispatcherInterface $event_dispatcher, EntityManagerInterface $entity_manager, DropzoneJsUploadSaveInterface $dropzonejs_upload_save, AccountProxyInterface $current_user, ModuleHandlerInterface $module_handler) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition, $event_dispatcher, $entity_manager, $dropzonejs_upload_save, $current_user);
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, EventDispatcherInterface $event_dispatcher, EntityTypeManagerInterface $entity_type_manager, WidgetValidationManager $validation_manager, DropzoneJsUploadSaveInterface $dropzonejs_upload_save, AccountProxyInterface $current_user, ModuleHandlerInterface $module_handler) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition, $event_dispatcher, $entity_type_manager, $validation_manager, $dropzonejs_upload_save, $current_user);
     $this->moduleHandler = $module_handler;
   }
 
@@ -72,7 +73,8 @@ class MediaEntityDropzoneJsEbWidget extends DropzoneJsEbWidget {
       $plugin_id,
       $plugin_definition,
       $container->get('event_dispatcher'),
-      $container->get('entity.manager'),
+      $container->get('entity_type.manager'),
+      $container->get('plugin.manager.entity_browser.widget_validation'),
       $container->get('dropzonejs.upload_save'),
       $container->get('current_user'),
       $container->get('module_handler')
