diff --git a/packages/oauth/src/install-provider.ts b/packages/oauth/src/install-provider.ts index 1e1eddb14..affe47186 100644 --- a/packages/oauth/src/install-provider.ts +++ b/packages/oauth/src/install-provider.ts @@ -401,10 +401,10 @@ export class InstallProvider { res.end(body); } } catch (e: unknown) { - const message = `An unhandled error occurred while processing an install path request (error: ${e})`; + const errorMessage = e instanceof Error ? e.message : String(e); + const message = `An unhandled error occurred while processing an install path request (error: ${errorMessage})`; this.logger.error(message); - // biome-ignore lint/suspicious/noExplicitAny: errors can be any - throw new GenerateInstallUrlError((e as any).message); + throw new GenerateInstallUrlError(errorMessage); } } diff --git a/packages/web-api/src/WebClient.ts b/packages/web-api/src/WebClient.ts index e212cf5dd..3dcb7552c 100644 --- a/packages/web-api/src/WebClient.ts +++ b/packages/web-api/src/WebClient.ts @@ -799,7 +799,12 @@ export class WebClient extends Methods { // if it isn't a Gzip response but is from the admin.analytics.getFile request, // decode the ArrayBuffer to JSON read the error const buffer = await response.arrayBuffer(); - data = JSON.parse(new TextDecoder().decode(buffer)); + try { + data = JSON.parse(new TextDecoder().decode(buffer)); + } catch (_) { + // failed to parse the response body as JSON + data = { ok: false, error: new TextDecoder().decode(buffer) }; + } } else { const text = await response.text(); try { diff --git a/packages/webhook/src/IncomingWebhook.ts b/packages/webhook/src/IncomingWebhook.ts index ba19ee2f6..e417cca65 100644 --- a/packages/webhook/src/IncomingWebhook.ts +++ b/packages/webhook/src/IncomingWebhook.ts @@ -71,7 +71,7 @@ export class IncomingWebhook { timeout: 0, }, ) { - if (url === undefined) { + if (!url) { throw new Error('Incoming webhook URL is required'); }