diff --git a/app/Repositories/Proxmox/Node/ProxmoxStorageRepository.php b/app/Repositories/Proxmox/Node/ProxmoxStorageRepository.php index a9887166d0b..8b8ab9bc47a 100644 --- a/app/Repositories/Proxmox/Node/ProxmoxStorageRepository.php +++ b/app/Repositories/Proxmox/Node/ProxmoxStorageRepository.php @@ -7,6 +7,7 @@ use Convoy\Data\Node\Storage\FileMetaData; use Convoy\Data\Node\Storage\IsoData; use Convoy\Enums\Node\Storage\ContentType; +use Convoy\Exceptions\Repository\Proxmox\ProxmoxConnectionException; use Convoy\Exceptions\Service\Node\IsoLibrary\InvalidIsoLinkException; use Convoy\Models\Node; use Convoy\Repositories\Proxmox\ProxmoxRepository; @@ -96,15 +97,21 @@ public function getFileMetadata(string $link, bool $verifyCertificates = true): Assert::isInstanceOf($this->node, Node::class); Assert::regex($link, '/^(http|https):\/\//'); - $response = $this->getHttpClient() - ->withUrlParameters([ - 'node' => $this->node->cluster, - ]) - ->get('/api2/json/nodes/{node}/query-url-metadata', [ - 'url' => $link, - 'verify-certificates' => $verifyCertificates, - ]) - ->json(); + try { + $response = $this->getHttpClient() + ->withUrlParameters([ + 'node' => $this->node->cluster, + ]) + ->get('/api2/json/nodes/{node}/query-url-metadata', [ + 'url' => $link, + 'verify-certificates' => $verifyCertificates, + ]) + ->json(); + } catch (ProxmoxConnectionException $e) { + if (str_contains($e->getMessage(), "Can't connect to")) { + throw new InvalidIsoLinkException(); + } + } if (Arr::get($response, 'success', 1) !== 1) { throw new InvalidIsoLinkException();