diff --git a/src/Feeds/Fetcher/HttpFetcher.php b/src/Feeds/Fetcher/HttpFetcher.php
index 5f184523..7b32ec5a 100644
--- a/src/Feeds/Fetcher/HttpFetcher.php
+++ b/src/Feeds/Fetcher/HttpFetcher.php
@@ -99,10 +99,16 @@ class HttpFetcher extends PluginBase implements ClearableInterface, FetcherInter
     $sink = $this->fileSystem->tempnam('temporary://', 'feeds_http_fetcher');
     $sink = $this->fileSystem->realpath($sink);
 
-    // Get cache key if caching is enabled.
-    $cache_key = $this->useCache() ? $this->getCacheKey($feed) : FALSE;
+    try {
+      $cache_key = $this->useCache() ? $this->getCacheKey($feed) : FALSE;
+      $response = $this->get($feed->getSource(), $sink, $cache_key);
+    }
+    // Delete created file if exception returned.
+    catch (\Exception $e) {
+      $this->fileSystem->unlink($sink);
+      throw new \RuntimeException($e->getMessage());
+    }
 
-    $response = $this->get($feed->getSource(), $sink, $cache_key);
     // @todo Handle redirects.
     // @codingStandardsIgnoreStart
     // $feed->setSource($response->getEffectiveUrl());
@@ -111,6 +117,13 @@ class HttpFetcher extends PluginBase implements ClearableInterface, FetcherInter
     // 304, nothing to see here.
     if ($response->getStatusCode() == Response::HTTP_NOT_MODIFIED) {
       $state->setMessage($this->t('The feed has not been updated.'));
+      $this->fileSystem->unlink($sink);
+      throw new EmptyFeedException();
+    }
+    // Validate if empty file, delete the file created and throw an exception
+    else if (empty($response->getBody())) {
+      $state->setMessage($this->t('The feed is empty.'));
+      $this->fileSystem->unlink($sink);
       throw new EmptyFeedException();
     }
 
