diff -u b/core/modules/migrate_drupal_ui/src/Form/CredentialForm.php b/core/modules/migrate_drupal_ui/src/Form/CredentialForm.php --- b/core/modules/migrate_drupal_ui/src/Form/CredentialForm.php +++ b/core/modules/migrate_drupal_ui/src/Form/CredentialForm.php @@ -241,7 +241,15 @@ $title = $form['source'][$key]['#title']; if (!isset($parsed_source['scheme'])) { if (!file_exists($source) || (!is_dir($source)) || (!is_readable($source))) { - $form_state->setErrorByName($key, $this->t('Unable to read from @title @source.', ['@title' => $title, '@source' => $source])); + $msg = []; + $msg[] = $this->t('Unable to read from @title @source.', [ + '@title' => $title, + '@source' => $source]); + $error_message = [ + '#theme' => 'item_list', + '#items' => $msg, + ]; + $form_state->setErrorByName($key, $this->renderer->renderPlain($error_message)); } } else { @@ -252,17 +260,29 @@ catch (TransferException $e) { if ($e->getResponse()) { $status = $e->getResponse()->getStatusCode(); - $form_state->setErrorByName($key, $this->t('Unable to read from @title @source. Status code @status.', [ + $msg = []; + $msg[] = $this->t('Unable to read from @title @source. Status code @status.', [ '@title' => $title, '@source' => $source, '@status' => $status, - ])); + ]); + $error_message = [ + '#theme' => 'item_list', + '#items' => $msg, + ]; + $form_state->setErrorByName($key, $this->renderer->renderPlain($error_message)); } else { - $form_state->setErrorByName($key, $this->t('Unable to read from @title @source.', [ + $msg = []; + $msg[] = $this->t('Unable to read from @title @source.', [ '@title' => $title, '@source' => $source, - ])); + ]); + $error_message = [ + '#theme' => 'item_list', + '#items' => $msg, + ]; + $form_state->setErrorByName($key, $this->renderer->renderPlain($error_message)); } } }