From cbecb64fefd9d69af50d8dbc6312e34bc551f12f Mon Sep 17 00:00:00 2001 From: FFXN Date: Fri, 7 Aug 2026 16:55:05 +0800 Subject: [PATCH] fix(knowledge_fs): refactor crawl page import logic to handle missing pages --- .../src/source-product-workflow-runtime.test.ts | 5 +---- .../api/src/source-product-workflow-runtime.ts | 14 ++++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/knowledge-fs/packages/api/src/source-product-workflow-runtime.test.ts b/knowledge-fs/packages/api/src/source-product-workflow-runtime.test.ts index 43ef58904eb..9f5db153882 100644 --- a/knowledge-fs/packages/api/src/source-product-workflow-runtime.test.ts +++ b/knowledge-fs/packages/api/src/source-product-workflow-runtime.test.ts @@ -847,10 +847,7 @@ describe("source-product workflow provider imports", () => { }, inventory: [], run: providerRun(source.id, "crawl-import", { - selectedSourceUrls: [ - "https://example.test/selected", - "https://example.test/missing", - ], + selectedSourceUrls: ["https://example.test/selected", "https://example.test/missing"], }), source, websiteCrawl: { diff --git a/knowledge-fs/packages/api/src/source-product-workflow-runtime.ts b/knowledge-fs/packages/api/src/source-product-workflow-runtime.ts index a890d9420fb..85bda991450 100644 --- a/knowledge-fs/packages/api/src/source-product-workflow-runtime.ts +++ b/knowledge-fs/packages/api/src/source-product-workflow-runtime.ts @@ -793,12 +793,14 @@ async function processSelectedCrawlImport( state: "importing", }), ); - await importCrawlPages( - input, - execution, - source, - [...requestedUrls].map((sourceUrl) => matched.get(sourceUrl)!), - ); + const selectedPages = [...requestedUrls].map((sourceUrl) => { + const page = matched.get(sourceUrl); + if (!page) { + throw runtimeError("SOURCE_CRAWL_PAGE_NOT_FOUND", "Selected crawl page is unavailable"); + } + return page; + }); + await importCrawlPages(input, execution, source, selectedPages); } async function importCrawlPages(