From 60654d5d2f33591e7eddd9afd82811600b79501f Mon Sep 17 00:00:00 2001 From: Corentin Date: Tue, 12 May 2026 09:08:03 +0000 Subject: [PATCH] fix(backlinks): read workspaceId from camelCased Kysely row Kysely's CamelCasePlugin (configured globally) rewrites snake_case columns to camelCase on result rows, so result.rows[0].workspace_id was undefined and the subsequent insert hit UNDEFINED_VALUE, leaving acadenice_backlink empty and the Knowledge Graph blank. --- .../backlinks/services/backlink-indexer.service.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/server/src/core/acadenice/backlinks/services/backlink-indexer.service.ts b/apps/server/src/core/acadenice/backlinks/services/backlink-indexer.service.ts index 0b591692..4ff410e6 100644 --- a/apps/server/src/core/acadenice/backlinks/services/backlink-indexer.service.ts +++ b/apps/server/src/core/acadenice/backlinks/services/backlink-indexer.service.ts @@ -35,7 +35,10 @@ export class BacklinkIndexerService { let page: { content: any; workspaceId: string } | null = null; try { - const result = await sql<{ content: any; workspace_id: string }>` + // Kysely's CamelCasePlugin (configured in database.module.ts) maps + // snake_case columns to camelCase keys at runtime, so the row type + // must reflect the post-plugin shape. + const result = await sql<{ content: any; workspaceId: string }>` SELECT p.content, s.workspace_id FROM pages p JOIN spaces s ON s.id = p.space_id @@ -51,7 +54,7 @@ export class BacklinkIndexerService { page = { content: result.rows[0].content, - workspaceId: result.rows[0].workspace_id, + workspaceId: result.rows[0].workspaceId, }; } catch (err) { this.logger.error(