diff --git a/internal-packages/emails/src/index.tsx b/internal-packages/emails/src/index.tsx index 391a92f504..189849d5c8 100644 --- a/internal-packages/emails/src/index.tsx +++ b/internal-packages/emails/src/index.tsx @@ -15,7 +15,7 @@ import MagicLinkEmail from "../emails/magic-link"; import WelcomeEmail from "../emails/welcome"; import { constructMailTransport, MailTransport, MailTransportOptions } from "./transports"; -export { type MailTransportOptions } +export { type MailTransportOptions }; export const DeliverEmailSchema = z .discriminatedUnion("email", [ @@ -109,7 +109,9 @@ export class EmailClient { } case "alert-run": { return { - subject: `[${data.organization}] Run ${data.runId} failed for ${data.taskIdentifier} [${data.version}.${data.environment}] ${data.error.message}`, + subject: `[${data.organization}] Run ${data.runId} failed for ${data.taskIdentifier} [${ + data.version + }.${data.environment}] ${formatErrorMessageForSubject(data.error.message)}`, component: , }; } @@ -128,3 +130,12 @@ export class EmailClient { } } } + +function formatErrorMessageForSubject(message?: string) { + if (!message) { + return ""; + } + + const singleLine = message.replace(/[\r\n]+/g, " "); + return singleLine.length > 30 ? singleLine.substring(0, 27) + "..." : singleLine; +} diff --git a/references/v3-catalog/trigger.config.ts b/references/v3-catalog/trigger.config.ts index b06685ade8..9a24160445 100644 --- a/references/v3-catalog/trigger.config.ts +++ b/references/v3-catalog/trigger.config.ts @@ -7,7 +7,6 @@ import { ffmpeg, syncEnvVars } from "@trigger.dev/build/extensions/core"; import { puppeteer } from "@trigger.dev/build/extensions/puppeteer"; import { prismaExtension } from "@trigger.dev/build/extensions/prisma"; import { emitDecoratorMetadata } from "@trigger.dev/build/extensions/typescript"; -import { pythonExtension } from "@trigger.dev/python/extension"; import { defineConfig } from "@trigger.dev/sdk/v3"; export { handleError } from "./src/handleError.js"; @@ -87,7 +86,6 @@ export default defineConfig({ value: secret.secretValue, })); }), - pythonExtension(), puppeteer(), ], external: ["re2"],