diff --git a/src/Plugin/aggregator/fetcher/DefaultFetcher.php b/src/Plugin/aggregator/fetcher/DefaultFetcher.php
index f306b9b4f05dcef5db08a267b46e7d7276daa5fa..79eea04081da371e54cbfb7ab70d840fb2e44556 100644
--- a/src/Plugin/aggregator/fetcher/DefaultFetcher.php
+++ b/src/Plugin/aggregator/fetcher/DefaultFetcher.php
@@ -8,6 +8,7 @@ use Drupal\Component\Datetime\DateTimePlus;
 use Drupal\Core\Http\ClientFactory;
 use Drupal\Core\Messenger\MessengerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\StringTranslation\TranslatableMarkup;
 use GuzzleHttp\Exception\TransferException;
 use GuzzleHttp\Psr7\Request;
 use Psr\Http\Message\RequestInterface;
@@ -126,8 +127,14 @@ class DefaultFetcher implements FetcherInterface, ContainerFactoryPluginInterfac
       return TRUE;
     }
     catch (TransferException $e) {
-      $this->logger->warning('The feed from %site seems to be broken because of error "%error".', ['%site' => $feed->label(), '%error' => $e->getMessage()]);
-      $this->messenger->addWarning(t('The feed from %site seems to be broken because of error "%error".', ['%site' => $feed->label(), '%error' => $e->getMessage()]));
+      $this->logger->warning('The feed from %url seems to be broken because of error "%error".', [
+        '%url' => $feed->getUrl(),
+        '%error' => $e->getMessage(),
+      ]);
+      $this->messenger->addWarning(new TranslatableMarkup('The feed from %url seems to be broken because of error "%error".', [
+        '%url' => $feed->getUrl(),
+        '%error' => $e->getMessage(),
+      ]));
       return FALSE;
     }
   }
diff --git a/src/Plugin/aggregator/parser/DefaultParser.php b/src/Plugin/aggregator/parser/DefaultParser.php
index 66448fa5a6fce047592ce19fcb2fe180cf4e83c4..ff9e92310577b59edf897e8dce8ef765133742e1 100644
--- a/src/Plugin/aggregator/parser/DefaultParser.php
+++ b/src/Plugin/aggregator/parser/DefaultParser.php
@@ -5,6 +5,7 @@ namespace Drupal\aggregator\Plugin\aggregator\parser;
 use Drupal\aggregator\Plugin\ParserInterface;
 use Drupal\aggregator\FeedInterface;
 use Drupal\Core\Messenger\MessengerTrait;
+use Drupal\Core\StringTranslation\TranslatableMarkup;
 use Laminas\Feed\Reader\Reader;
 use Laminas\Feed\Reader\Exception\ExceptionInterface;
 
@@ -34,7 +35,10 @@ class DefaultParser implements ParserInterface {
     }
     catch (ExceptionInterface $e) {
       watchdog_exception('aggregator', $e);
-      $this->messenger()->addError(t('The feed from %site seems to be broken because of error "%error".', ['%site' => $feed->label(), '%error' => $e->getMessage()]));
+      $this->messenger()->addError(new TranslatableMarkup('The feed from %url seems to be broken because of error "%error".', [
+        '%url' => $feed->getUrl(),
+        '%error' => $e->getMessage(),
+      ]));
 
       return FALSE;
     }
diff --git a/tests/src/Functional/FeedParserTest.php b/tests/src/Functional/FeedParserTest.php
index 916510b706b315829af3ba9ccfd9e22081a32914..d8ed13223f2f4b94d54917689fa77a78cd77d19f 100644
--- a/tests/src/Functional/FeedParserTest.php
+++ b/tests/src/Functional/FeedParserTest.php
@@ -112,14 +112,14 @@ class FeedParserTest extends AggregatorTestBase {
    */
   public function testInvalidFeed() {
     // Simulate a typo in the URL to force a curl exception.
-    $invalid_url = 'http:/www.drupal.org';
+    $invalid_url = 'https:/www.drupal.org';
     $feed = Feed::create(['url' => $invalid_url, 'title' => $this->randomMachineName()]);
     $feed->save();
 
     // Update the feed. Use the UI to be able to check the message easily.
     $this->drupalGet('admin/config/services/aggregator');
     $this->clickLink('Update items');
-    $this->assertSession()->pageTextContains('The feed from ' . $feed->label() . ' seems to be broken because of error');
+    $this->assertSession()->pageTextContains('The feed from ' . $feed->getUrl() . ' seems to be broken because of error');
   }
 
 }