Skip to content

Commit f27aa53

Browse files
author
deepshekhardas
committed
fix: null-safe getTime() calls in replication services (triggerdotdev#3519)
Add optional chaining to getTime() calls on createdAt, updatedAt fields in runs and sessions replication services. When CDC sends rows before timestamps are fully populated, calling .getTime() on undefined crashes the replication service with a TypeError. - runsReplicationService.server.ts: null-safe updatedAt/createdAt in #prepareTaskRunInsert and #preparePayloadInsert - sessionsReplicationService.server.ts: null-safe createdAt/updatedAt in toSessionInsertArray
1 parent c80b85e commit f27aa53

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

apps/webapp/app/services/runsReplicationService.server.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -875,8 +875,8 @@ export class RunsReplicationService {
875875
organizationId, // organization_id
876876
run.projectId, // project_id
877877
run.id, // run_id
878-
run.updatedAt.getTime(), // updated_at
879-
run.createdAt.getTime(), // created_at
878+
run.updatedAt?.getTime() ?? Date.now(), // updated_at
879+
run.createdAt?.getTime() ?? Date.now(), // created_at
880880
run.status, // status
881881
environmentType, // environment_type
882882
run.friendlyId, // friendly_id
@@ -936,7 +936,7 @@ export class RunsReplicationService {
936936
// Return array matching PAYLOAD_COLUMNS order
937937
return [
938938
run.id, // run_id
939-
run.createdAt.getTime(), // created_at
939+
run.createdAt?.getTime() ?? Date.now(), // created_at
940940
payload, // payload
941941
];
942942
}

apps/webapp/app/services/sessionsReplicationService.server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -750,8 +750,8 @@ function toSessionInsertArray(
750750
session.closedAt ? session.closedAt.getTime() : null,
751751
session.closedReason ?? "",
752752
session.expiresAt ? session.expiresAt.getTime() : null,
753-
session.createdAt.getTime(),
754-
session.updatedAt.getTime(),
753+
session.createdAt?.getTime() ?? Date.now(),
754+
session.updatedAt?.getTime() ?? Date.now(),
755755
version.toString(),
756756
isDeleted ? 1 : 0,
757757
];

0 commit comments

Comments
 (0)