Skip to content

Commit 7d28f62

Browse files
committed
fix subflow errors
1 parent b890120 commit 7d28f62

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

apps/sim/app/api/workflows/[id]/execute/route.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { markExecutionCancelled } from '@/lib/execution/cancellation'
1717
import { processInputFileFields } from '@/lib/execution/files'
1818
import { preprocessExecution } from '@/lib/execution/preprocessing'
1919
import { LoggingSession } from '@/lib/logs/execution/logging-session'
20+
import { buildTraceSpans } from '@/lib/logs/execution/trace-spans/trace-spans'
2021
import {
2122
cleanupExecutionBase64Cache,
2223
hydrateUserFilesWithBase64,
@@ -879,11 +880,14 @@ export async function POST(req: NextRequest, { params }: { params: Promise<{ id:
879880
logger.error(`[${requestId}] SSE execution failed: ${errorMessage}`, { isTimeout })
880881

881882
const executionResult = hasExecutionResult(error) ? error.executionResult : undefined
883+
const { traceSpans, totalDuration } = executionResult
884+
? buildTraceSpans(executionResult)
885+
: { traceSpans: [], totalDuration: 0 }
882886

883887
await loggingSession.safeCompleteWithError({
884-
totalDurationMs: executionResult?.metadata?.duration,
888+
totalDurationMs: totalDuration || executionResult?.metadata?.duration,
885889
error: { message: errorMessage },
886-
traceSpans: executionResult?.logs as any,
890+
traceSpans,
887891
})
888892

889893
sendEvent({

apps/sim/executor/execution/engine.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ export class ExecutionEngine {
162162
}
163163
}
164164

165+
this.finalizeIncompleteLogs()
166+
165167
const errorMessage = normalizeError(error)
166168
logger.error('Execution failed', { error: errorMessage })
167169

apps/sim/executor/utils/subflow-utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,10 @@ export function addSubflowErrorLog(
229229
}
230230
ctx.blockLogs.push(blockLog)
231231

232+
if (contextExtensions?.onBlockStart) {
233+
contextExtensions.onBlockStart(blockId, blockName, blockType, execOrder)
234+
}
235+
232236
if (contextExtensions?.onBlockComplete) {
233237
contextExtensions.onBlockComplete(blockId, blockName, blockType, {
234238
input: inputData,

apps/sim/lib/logs/execution/logger.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,10 +261,14 @@ export class ExecutionLogger implements IExecutionLoggerService {
261261
models: costSummary.models,
262262
}
263263

264-
const totalDuration =
264+
const rawDurationMs =
265265
isResume && existingLog?.startedAt
266266
? new Date(endedAt).getTime() - new Date(existingLog.startedAt).getTime()
267267
: totalDurationMs
268+
const totalDuration =
269+
typeof rawDurationMs === 'number' && Number.isFinite(rawDurationMs)
270+
? Math.max(0, Math.round(rawDurationMs))
271+
: 0
268272

269273
const [updatedLog] = await db
270274
.update(workflowExecutionLogs)

0 commit comments

Comments
 (0)