diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/services/record-position-backfill-service.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/services/record-position-backfill-service.ts index d6483f4f2e100..46cf3c64eeffe 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/services/record-position-backfill-service.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/services/record-position-backfill-service.ts @@ -21,6 +21,10 @@ export class RecordPositionBackfillService { ) {} async backfill(workspaceId: string, dryRun: boolean) { + this.logger.log( + `Starting backfilling record positions for workspace ${workspaceId}`, + ); + const dataSourceSchema = this.workspaceDataSourceService.getSchemaName(workspaceId); @@ -34,7 +38,7 @@ export class RecordPositionBackfillService { for (const objectMetadata of objectMetadataWithPosition) { const [recordsWithoutPositionQuery, recordsWithoutPositionQueryParams] = - await this.recordPositionQueryFactory.create( + this.recordPositionQueryFactory.create( { recordPositionQueryType: RecordPositionQueryType.FIND_BY_POSITION, positionValue: null, @@ -48,12 +52,21 @@ export class RecordPositionBackfillService { recordsWithoutPositionQuery, recordsWithoutPositionQueryParams, workspaceId, - undefined, ); + if (recordsWithoutPosition.length === 0) { + this.logger.log( + `No records without position for ${objectMetadata.nameSingular}`, + ); + continue; + } + const position = await this.recordPositionFactory.create( 'last', - objectMetadata as ObjectMetadataInterface, + { + isCustom: objectMetadata.isCustom, + nameSingular: objectMetadata.nameSingular, + }, workspaceId, ); @@ -63,6 +76,14 @@ export class RecordPositionBackfillService { recordIndex++ ) { const recordId = recordsWithoutPosition[recordIndex].id; + + if (!recordId) { + this.logger.log( + `Fetched record without id for ${objectMetadata.nameSingular}`, + ); + continue; + } + const backfilledPosition = position + recordIndex; this.logger.log( @@ -73,7 +94,7 @@ export class RecordPositionBackfillService { continue; } - const [query, params] = await this.recordPositionQueryFactory.create( + const [query, params] = this.recordPositionQueryFactory.create( { recordPositionQueryType: RecordPositionQueryType.UPDATE_POSITION, recordId: recordsWithoutPosition[recordIndex].id, @@ -87,7 +108,6 @@ export class RecordPositionBackfillService { query, params, workspaceId, - undefined, ); } }