diff --git a/src/error/HttpError.ts b/src/error/HttpError.ts index 2e29be0..fbab7b9 100644 --- a/src/error/HttpError.ts +++ b/src/error/HttpError.ts @@ -1,11 +1,13 @@ export class HttpError extends Error { public readonly status: number; + public readonly statusText: string; public readonly headers: Record; - constructor(status: number, headers: Record) { + constructor(status: number, statusText: string, headers: Record) { super(); this.status = status; + this.statusText = statusText; this.headers = headers; } } diff --git a/src/utils/Fetcher.ts b/src/utils/Fetcher.ts index 10414eb..aa8212c 100644 --- a/src/utils/Fetcher.ts +++ b/src/utils/Fetcher.ts @@ -157,7 +157,7 @@ export class Fetcher { throw new BlockedError('unknown', httpCacheItem.policy.responseHeaders()); } - throw new HttpError(httpCacheItem.status, responseHeaders); + throw new HttpError(httpCacheItem.status, httpCacheItem.statusText, responseHeaders); }; private readonly determineTtl = (httpCacheItem: HttpCacheItem): number => { diff --git a/src/utils/StreamResolver.test.ts b/src/utils/StreamResolver.test.ts index ea8b7d5..8f60009 100644 --- a/src/utils/StreamResolver.test.ts +++ b/src/utils/StreamResolver.test.ts @@ -116,7 +116,7 @@ describe('resolve', () => { { url: new URL('https://example4.com'), isExternal: true, - error: new HttpError(500, { 'x-foo': 'bar' }), + error: new HttpError(500, 'Internal Server Error', { 'x-foo': 'bar' }), label: 'hoster.com', sourceId: '', meta: { diff --git a/src/utils/StreamResolver.ts b/src/utils/StreamResolver.ts index 861b10b..83f6768 100644 --- a/src/utils/StreamResolver.ts +++ b/src/utils/StreamResolver.ts @@ -170,8 +170,8 @@ export class StreamResolver { } if (error instanceof HttpError) { - this.logger.error(`${source}: HTTP status ${error.status}, headers: ${JSON.stringify(error.headers)}.`, ctx); - return `❌ Request failed with status ${error.status}. Request-id: ${ctx.id}.`; + this.logger.error(`${source}: HTTP status ${error.status} (${error.statusText}), headers: ${JSON.stringify(error.headers)}.`, ctx); + return `❌ Request failed with status ${error.status} (${error.statusText}). Request-id: ${ctx.id}.`; } const cause = (error as Error & { cause?: unknown }).cause; diff --git a/src/utils/__snapshots__/StreamResolver.test.ts.snap b/src/utils/__snapshots__/StreamResolver.test.ts.snap index aec952a..a6c4da9 100644 --- a/src/utils/__snapshots__/StreamResolver.test.ts.snap +++ b/src/utils/__snapshots__/StreamResolver.test.ts.snap @@ -49,7 +49,7 @@ exports[`resolve adds error info 1`] = ` "name": "WebStreamr N/A ⚠️ external", "title": "🌐 German 🇩🇪 🔗 hoster.com -❌ Request failed with status 500. Request-id: id.", +❌ Request failed with status 500 (Internal Server Error). Request-id: id.", }, ], } @@ -103,7 +103,7 @@ exports[`resolve adds error info 2`] = ` "name": "WebStreamr N/A", "title": "🌐 German 🇩🇪 🔗 hoster.com -❌ Request failed with status 500. Request-id: id.", +❌ Request failed with status 500 (Internal Server Error). Request-id: id.", "ytId": "E4WlUXrJgy4", }, ],