Save crash errors on the attempt
This commit is contained in:
@@ -6,6 +6,7 @@ import { logger } from "~/services/logger.server";
|
||||
import { AuthenticatedEnvironment } from "~/services/apiAuth.server";
|
||||
import { ResumeTaskRunDependenciesService } from "./resumeTaskRunDependencies.server";
|
||||
import { CRASHABLE_ATTEMPT_STATUSES, isCrashableRunStatus } from "../taskStatus";
|
||||
import { sanitizeError } from "@trigger.dev/core/v3";
|
||||
|
||||
export type CrashTaskRunServiceOptions = {
|
||||
reason?: string;
|
||||
@@ -111,7 +112,11 @@ export class CrashTaskRunService extends BaseService {
|
||||
attempt,
|
||||
crashedTaskRun,
|
||||
new Date(),
|
||||
crashedTaskRun.runtimeEnvironment
|
||||
crashedTaskRun.runtimeEnvironment,
|
||||
{
|
||||
reason: opts.reason,
|
||||
logs: opts.logs,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -120,7 +125,11 @@ export class CrashTaskRunService extends BaseService {
|
||||
attempt: TaskRunAttempt,
|
||||
run: TaskRun,
|
||||
failedAt: Date,
|
||||
environment: AuthenticatedEnvironment
|
||||
environment: AuthenticatedEnvironment,
|
||||
error: {
|
||||
reason: string;
|
||||
logs?: string;
|
||||
}
|
||||
) {
|
||||
return await this.traceWithEnv("failAttempt()", environment, async (span) => {
|
||||
span.setAttribute("taskRunId", run.id);
|
||||
@@ -135,6 +144,12 @@ export class CrashTaskRunService extends BaseService {
|
||||
data: {
|
||||
status: "FAILED",
|
||||
completedAt: failedAt,
|
||||
error: sanitizeError({
|
||||
type: "INTERNAL_ERROR",
|
||||
code: "TASK_RUN_CRASHED",
|
||||
message: error.reason,
|
||||
stackTrace: error.logs,
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@ export const TaskRunErrorCodes = {
|
||||
TASK_OUTPUT_ERROR: "TASK_OUTPUT_ERROR",
|
||||
HANDLE_ERROR_ERROR: "HANDLE_ERROR_ERROR",
|
||||
GRACEFUL_EXIT_TIMEOUT: "GRACEFUL_EXIT_TIMEOUT",
|
||||
TASK_RUN_CRASHED: "TASK_RUN_CRASHED",
|
||||
} as const;
|
||||
|
||||
export const TaskRunInternalError = z.object({
|
||||
@@ -107,6 +108,7 @@ export const TaskRunInternalError = z.object({
|
||||
"HANDLE_ERROR_ERROR",
|
||||
"GRACEFUL_EXIT_TIMEOUT",
|
||||
"TASK_RUN_HEARTBEAT_TIMEOUT",
|
||||
"TASK_RUN_CRASHED",
|
||||
]),
|
||||
message: z.string().optional(),
|
||||
stackTrace: z.string().optional(),
|
||||
|
||||
Reference in New Issue
Block a user