diff --git a/lib/private/Http/Client/Client.php b/lib/private/Http/Client/Client.php
index 993b83917fd3a9fa649f5144cd52de905762cfdd..28694f3858502f818109c25ced6604b24beb190c 100644
--- a/lib/private/Http/Client/Client.php
+++ b/lib/private/Http/Client/Client.php
@@ -63,6 +63,7 @@ class Client implements IClient {
 		$defaults = [
 			RequestOptions::PROXY => $this->getProxyUri(),
 			RequestOptions::VERIFY => $this->getCertBundle(),
+			RequestOptions::TIMEOUT => 30,
 		];
 
 		$options = array_merge($defaults, $options);
diff --git a/tests/lib/Http/Client/ClientTest.php b/tests/lib/Http/Client/ClientTest.php
index 7a25acd9a5033ddb27e1e5aa2e98d0c111e6ba01..5c0693732bc207d929e9e24d99d496eb02caf60e 100644
--- a/tests/lib/Http/Client/ClientTest.php
+++ b/tests/lib/Http/Client/ClientTest.php
@@ -111,8 +111,9 @@ class ClientTest extends \Test\TestCase {
 			'verify' => '/my/path.crt',
 			'proxy' => 'foo',
 			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
+				'User-Agent' => 'Nextcloud Server Crawler',
+			],
+			'timeout' => 30,
 		];
 	}
 
@@ -128,13 +129,10 @@ class ClientTest extends \Test\TestCase {
 	public function testGetWithOptions(): void {
 		$this->setUpDefaultRequestOptions();
 
-		$options = [
+		$options = array_merge($this->defaultRequestOptions, [
 			'verify' => false,
 			'proxy' => 'bar',
-			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
-		];
+		]);
 
 		$this->guzzleClient->method('request')
 			->with('get', 'http://localhost/', $options)
@@ -154,13 +152,10 @@ class ClientTest extends \Test\TestCase {
 	public function testPostWithOptions(): void {
 		$this->setUpDefaultRequestOptions();
 
-		$options = [
+		$options = array_merge($this->defaultRequestOptions, [
 			'verify' => false,
 			'proxy' => 'bar',
-			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
-		];
+		]);
 
 		$this->guzzleClient->method('request')
 			->with('post', 'http://localhost/', $options)
@@ -180,13 +175,10 @@ class ClientTest extends \Test\TestCase {
 	public function testPutWithOptions(): void {
 		$this->setUpDefaultRequestOptions();
 
-		$options = [
+		$options = array_merge($this->defaultRequestOptions, [
 			'verify' => false,
 			'proxy' => 'bar',
-			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
-		];
+		]);
 
 		$this->guzzleClient->method('request')
 			->with('put', 'http://localhost/', $options)
@@ -206,13 +198,10 @@ class ClientTest extends \Test\TestCase {
 	public function testDeleteWithOptions(): void {
 		$this->setUpDefaultRequestOptions();
 
-		$options = [
+		$options = array_merge($this->defaultRequestOptions, [
 			'verify' => false,
 			'proxy' => 'bar',
-			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
-		];
+		]);
 
 		$this->guzzleClient->method('request')
 			->with('delete', 'http://localhost/', $options)
@@ -232,13 +221,10 @@ class ClientTest extends \Test\TestCase {
 	public function testOptionsWithOptions(): void {
 		$this->setUpDefaultRequestOptions();
 
-		$options = [
+		$options = array_merge($this->defaultRequestOptions, [
 			'verify' => false,
 			'proxy' => 'bar',
-			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
-		];
+		]);
 
 		$this->guzzleClient->method('request')
 			->with('options', 'http://localhost/', $options)
@@ -258,13 +244,10 @@ class ClientTest extends \Test\TestCase {
 	public function testHeadWithOptions(): void {
 		$this->setUpDefaultRequestOptions();
 
-		$options = [
+		$options = array_merge($this->defaultRequestOptions, [
 			'verify' => false,
 			'proxy' => 'bar',
-			'headers' => [
-				'User-Agent' => 'Nextcloud Server Crawler'
-			]
-		];
+		]);
 
 		$this->guzzleClient->method('request')
 			->with('head', 'http://localhost/', $options)
@@ -288,7 +271,8 @@ class ClientTest extends \Test\TestCase {
 			'proxy' => null,
 			'headers' => [
 				'User-Agent' => 'Nextcloud Server Crawler'
-			]
+			],
+			'timeout' => 30,
 		], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
 	}
 
@@ -314,7 +298,8 @@ class ClientTest extends \Test\TestCase {
 			'proxy' => 'foo',
 			'headers' => [
 				'User-Agent' => 'Nextcloud Server Crawler'
-			]
+			],
+			'timeout' => 30,
 		], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
 	}
 }