markFailed method
Implementation
@override
Future<void> markFailed(
String runId,
Object error,
StackTrace stack, {
bool terminal = false,
}) async {
await _client.run((Connection conn) async {
final now = _nowUtc();
if (terminal) {
await _deleteWatcherForRun(conn, runId);
}
await conn.execute(
Sql.named('''
UPDATE $_runsTable
SET status = @status,
last_error = @error::jsonb,
updated_at = @updatedAt
WHERE id = @id
'''),
parameters: {
'status':
(terminal ? WorkflowStatus.failed : WorkflowStatus.running).name,
'error': jsonEncode({
'error': error.toString(),
'stack': stack.toString(),
}),
'id': runId,
'updatedAt': now,
},
);
});
}