diff --git a/core/lib/Drupal/Core/Form/FormBuilder.php b/core/lib/Drupal/Core/Form/FormBuilder.php index 9353a76..1340e5b 100644 --- a/core/lib/Drupal/Core/Form/FormBuilder.php +++ b/core/lib/Drupal/Core/Form/FormBuilder.php @@ -1198,6 +1198,12 @@ public function executeHandlers($type, &$form, &$form_state) { * {@inheritdoc} */ public function setErrorByName($name, array &$form_state, $message = '') { + // Errors must be set during validation only. + // @todo Move $this->validatedForms into $form_state. + if (isset($form_state['build_info']['form_id']) && !empty($this->validatedForms[$form_state['build_info']['form_id']])) { + throw new \BadMethodCallException('Validation errors cannot be set during submission handling.'); + } + if (!isset($form_state['errors'][$name])) { $record = TRUE; if (isset($form_state['limit_validation_errors'])) {