diff --git a/packages/shared/lib/services/sync/data/records.service.ts b/packages/shared/lib/services/sync/data/records.service.ts index a83d5900ac..c55263d254 100644 --- a/packages/shared/lib/services/sync/data/records.service.ts +++ b/packages/shared/lib/services/sync/data/records.service.ts @@ -528,12 +528,18 @@ export async function deleteRecordsBySyncId({ syncId, limit = 5000 }: { syncId: } // Mark all non-deleted records that don't belong to currentGeneration as deleted -export async function markNonCurrentGenerationRecordsAsDeleted(connectionId: number, model: string, generation: number): Promise { +export async function markNonCurrentGenerationRecordsAsDeleted( + connectionId: number, + model: string, + syncId: string, + generation: number +): Promise { return schema() .from(RECORDS_TABLE) .where({ nango_connection_id: connectionId, model, + sync_id: syncId, external_is_deleted: false }) .whereNot({ diff --git a/packages/shared/lib/services/sync/run.service.ts b/packages/shared/lib/services/sync/run.service.ts index 02c3cafbeb..4aa11bc1b1 100644 --- a/packages/shared/lib/services/sync/run.service.ts +++ b/packages/shared/lib/services/sync/run.service.ts @@ -406,6 +406,7 @@ export default class SyncRun { const deletedRecords = await recordsService.markNonCurrentGenerationRecordsAsDeleted( this.nangoConnection.id as number, model, + this.syncId as string, this.syncJobId as number ); deletedKeys = deletedRecords.flatMap((r) => (r.id ? [r.id] : []));