From f33fd40de469501772181c1fd19c1f54fb216e38 Mon Sep 17 00:00:00 2001 From: Chris Anderson Date: Mon, 11 Aug 2025 22:42:57 -0500 Subject: [PATCH] chore: dont log errors for webhooks we dont care about --- .../platform/src/providers/text/TelnyxTextProvider.ts | 3 ++- apps/platform/src/providers/text/TextProvider.ts | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/platform/src/providers/text/TelnyxTextProvider.ts b/apps/platform/src/providers/text/TelnyxTextProvider.ts index 02cafc7c..01f40221 100644 --- a/apps/platform/src/providers/text/TelnyxTextProvider.ts +++ b/apps/platform/src/providers/text/TelnyxTextProvider.ts @@ -91,7 +91,8 @@ export default class TelnyxTextProvider extends TextProvider { } // https://www.twilio.com/docs/messaging/guides/webhook-request - parseInbound(inbound: any): InboundTextMessage { + parseInbound(inbound: any): InboundTextMessage | undefined { + if (inbound.data.event_type !== 'message.received') return const payload = inbound.data.payload return { to: payload.to, diff --git a/apps/platform/src/providers/text/TextProvider.ts b/apps/platform/src/providers/text/TextProvider.ts index b8174646..1e34d64e 100644 --- a/apps/platform/src/providers/text/TextProvider.ts +++ b/apps/platform/src/providers/text/TextProvider.ts @@ -13,7 +13,7 @@ export type TextProviderName = 'nexmo' | 'plivo' | 'twilio' | 'logger' export abstract class TextProvider extends Provider { abstract send(message: TextMessage): Promise - abstract parseInbound(inbound: any): InboundTextMessage + abstract parseInbound(inbound: any): InboundTextMessage | undefined static get group() { return 'text' as ProviderGroup } @@ -27,7 +27,14 @@ export abstract class TextProvider extends Provider { const channel = await loadTextChannel(provider.id) const project = await getProject(provider.project_id) const message = channel?.provider.parseInbound(ctx.request.body) - if (!channel || !project || !message) ctx.throw(404) + if (!channel || !project) ctx.throw(404) + + // If undefined message, we can't parse the body but don't want to + // keep getting the request + if (!message) { + ctx.status = 204 + return + } // Find the user from the inbound text message const user = await getUserFromPhone(provider.project_id, message.from)