diff --git a/lib/resolvers/url.ts b/lib/resolvers/url.ts
index 8122b644..007b8a41 100644
--- a/lib/resolvers/url.ts
+++ b/lib/resolvers/url.ts
@@ -6,10 +6,12 @@ import type { FileInfo } from "../types/index.js";
 export const sendRequest = async ({
   init,
   redirects = [],
+  timeout = 60_000,
   url,
 }: {
   init?: RequestInit;
   redirects?: string[];
+  timeout?: number;
   url: URL | string;
 }): Promise<{
   response: Response;
@@ -21,7 +23,7 @@ export const sendRequest = async ({
     const controller = new AbortController();
     const timeoutId = setTimeout(() => {
       controller.abort();
-    }, 60_000);
+    }, timeout);
     const response = await fetch(url, {
       signal: controller.signal,
       ...init,
@@ -29,6 +31,11 @@ export const sendRequest = async ({
     clearTimeout(timeoutId);
 
     if (response.status >= 400) {
+      // gracefully handle HEAD method not allowed
+      if (response.status === 405 && init?.method === 'HEAD') {
+        return { response };
+      }
+
       throw ono({ status: response.status }, `HTTP ERROR ${response.status}`);
     }
     
@@ -49,6 +56,7 @@ export const sendRequest = async ({
       return sendRequest({
         init,
         redirects,
+        timeout,
         url: resolve(url.href, response.headers.location as string),
       });
     }
diff --git a/package.json b/package.json
index 8ec4bc48..7e3e1489 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@hey-api/json-schema-ref-parser",
-  "version": "0.0.2",
+  "version": "0.0.3",
   "description": "Parse, Resolve, and Dereference JSON Schema $ref pointers",
   "homepage": "https://heyapi.dev/",
   "repository": {