From b176301175a0997f08b833ce3f860da1dc51f85e Mon Sep 17 00:00:00 2001 From: Virgile RIETSCH Date: Wed, 22 Apr 2026 18:38:16 +0200 Subject: [PATCH 1/4] fix(docs): keep notFound inside route boundaries --- src/routes/$libraryId/$version.docs.$.tsx | 2 ++ .../$version.docs.framework.$framework.$.tsx | 2 ++ ...ion.docs.framework.$framework.{$}[.]md.tsx | 23 ++++++++++++----- .../$libraryId/$version.docs.{$}[.]md.tsx | 25 +++++++++++++------ src/utils/docs-errors.ts | 25 +++++++++++++++++++ src/utils/docs.functions.ts | 8 +++--- src/utils/docs.ts | 14 +++-------- 7 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 src/utils/docs-errors.ts diff --git a/src/routes/$libraryId/$version.docs.$.tsx b/src/routes/$libraryId/$version.docs.$.tsx index ee525cec5..5906dac26 100644 --- a/src/routes/$libraryId/$version.docs.$.tsx +++ b/src/routes/$libraryId/$version.docs.$.tsx @@ -1,5 +1,6 @@ import { seo } from '~/utils/seo' import { Doc } from '~/components/Doc' +import { isDocsNotFoundError } from '~/utils/docs-errors' import { loadDocsPage, resolveDocsRedirect } from '~/utils/docs' import { findLibrary, getBranch, getLibrary } from '~/libraries' import { DocContainer } from '~/components/DocContainer' @@ -36,6 +37,7 @@ export const Route = createFileRoute('/$libraryId/$version/docs/$')({ }) } catch (error) { const isNotFoundError = + isDocsNotFoundError(error) || isNotFound(error) || (error && typeof error === 'object' && 'isNotFound' in error) diff --git a/src/routes/$libraryId/$version.docs.framework.$framework.$.tsx b/src/routes/$libraryId/$version.docs.framework.$framework.$.tsx index b0eb34fb6..b810f961f 100644 --- a/src/routes/$libraryId/$version.docs.framework.$framework.$.tsx +++ b/src/routes/$libraryId/$version.docs.framework.$framework.$.tsx @@ -7,6 +7,7 @@ import { } from '@tanstack/react-router' import { seo } from '~/utils/seo' import { Doc } from '~/components/Doc' +import { isDocsNotFoundError } from '~/utils/docs-errors' import { loadDocsPage, resolveDocsRedirect } from '~/utils/docs' import { getBranch, getLibrary } from '~/libraries' import { capitalize } from '~/utils/utils' @@ -36,6 +37,7 @@ export const Route = createFileRoute( // This handles cases like switching frameworks where the same doc path doesn't exist // Check both isNotFound() and the serialized form from server functions const isNotFoundError = + isDocsNotFoundError(error) || isNotFound(error) || (error && typeof error === 'object' && 'isNotFound' in error) diff --git a/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx b/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx index fe302cbe8..9e71876fe 100644 --- a/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx +++ b/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx @@ -1,4 +1,5 @@ import { findLibrary, getBranch } from '~/libraries' +import { isDocsNotFoundError } from '~/utils/docs-errors' import { loadDocs } from '~/utils/docs' import { notFound, createFileRoute } from '@tanstack/react-router' import { filterFrameworkContent } from '~/utils/markdown/filterFrameworkContent' @@ -34,12 +35,22 @@ export const Route = createFileRoute( const root = library.docsRoot || 'docs' - const doc = await loadDocs({ - repo: library.repo, - branch: getBranch(library, version), - docsRoot: root, - docsPath: `framework/${framework}/${docsPath}`, - }) + let doc + + try { + doc = await loadDocs({ + repo: library.repo, + branch: getBranch(library, version), + docsRoot: root, + docsPath: `framework/${framework}/${docsPath}`, + }) + } catch (error) { + if (isDocsNotFoundError(error)) { + throw notFound() + } + + throw error + } // Filter framework-specific content using framework from URL path const filteredContent = filterFrameworkContent(doc.content, { diff --git a/src/routes/$libraryId/$version.docs.{$}[.]md.tsx b/src/routes/$libraryId/$version.docs.{$}[.]md.tsx index 5ec537ade..190104092 100644 --- a/src/routes/$libraryId/$version.docs.{$}[.]md.tsx +++ b/src/routes/$libraryId/$version.docs.{$}[.]md.tsx @@ -1,5 +1,6 @@ -import { createFileRoute } from '@tanstack/react-router' +import { createFileRoute, notFound } from '@tanstack/react-router' import { getBranch, getLibrary, type LibraryId } from '~/libraries' +import { isDocsNotFoundError } from '~/utils/docs-errors' import { loadDocs } from '~/utils/docs' import { filterFrameworkContent } from '~/utils/markdown/filterFrameworkContent' import { getPackageManager } from '~/utils/markdown/installCommand' @@ -23,12 +24,22 @@ export const Route = createFileRoute('/$libraryId/$version/docs/{$}.md')({ const library = getLibrary(libraryId as LibraryId) const root = library.docsRoot || 'docs' - const doc = await loadDocs({ - repo: library.repo, - branch: getBranch(library, version), - docsRoot: root, - docsPath, - }) + let doc + + try { + doc = await loadDocs({ + repo: library.repo, + branch: getBranch(library, version), + docsRoot: root, + docsPath, + }) + } catch (error) { + if (isDocsNotFoundError(error)) { + throw notFound() + } + + throw error + } // Filter framework-specific content only if framework is explicitly specified const filteredContent = framework diff --git a/src/utils/docs-errors.ts b/src/utils/docs-errors.ts new file mode 100644 index 000000000..12ef42853 --- /dev/null +++ b/src/utils/docs-errors.ts @@ -0,0 +1,25 @@ +type DocsNotFoundError = Error & { + data: { message: string } + isDocsNotFound: true +} + +export function createDocsNotFoundError(message = 'No doc was found here!') { + const error = new Error(message) as DocsNotFoundError + + error.name = 'DocsNotFoundError' + error.data = { message } + error.isDocsNotFound = true + + return error +} + +export function isDocsNotFoundError( + error: unknown, +): error is DocsNotFoundError { + return ( + typeof error === 'object' && + error !== null && + 'isDocsNotFound' in error && + error.isDocsNotFound === true + ) +} diff --git a/src/utils/docs.functions.ts b/src/utils/docs.functions.ts index dbfeea200..9f0e1309b 100644 --- a/src/utils/docs.functions.ts +++ b/src/utils/docs.functions.ts @@ -1,4 +1,3 @@ -import { notFound } from '@tanstack/react-router' import { createServerFn } from '@tanstack/react-start' import { setResponseHeader } from '@tanstack/react-start/server' import removeMarkdown from 'remove-markdown' @@ -9,6 +8,7 @@ import { fetchRepoFile, isRecoverableGitHubContentError, } from '~/utils/documents.server' +import { createDocsNotFoundError } from './docs-errors' import { renderMarkdownToRsc } from './markdown' import { getCachedDocsArtifact } from './github-content-cache.server' import { buildRedirectManifest, type RedirectManifestEntry } from './redirects' @@ -223,7 +223,7 @@ export const fetchDocs = createServerFn({ method: 'GET' }) const file = await readRepoFileOrFallback(repo, branch, filePath) if (!file) { - throw notFound() + throw createDocsNotFoundError() } const frontMatter = extractFrontMatter(file) @@ -267,7 +267,7 @@ export const fetchFile = createServerFn({ method: 'GET' }) const file = await readRepoFileOrFallback(repo, branch, filePath) if (!file) { - throw notFound() + throw createDocsNotFoundError() } setDocsCacheHeaders('max-age=3600, stale-while-revalidate=3600, durable') @@ -284,7 +284,7 @@ export const fetchRepoDirectoryContents = createServerFn({ const githubContents = await fetchApiContents(repo, branch, startingPath) if (!githubContents) { - throw notFound() + throw createDocsNotFoundError() } setDocsCacheHeaders('max-age=3600, stale-while-revalidate=3600, durable') diff --git a/src/utils/docs.ts b/src/utils/docs.ts index 204f37813..833ff7989 100644 --- a/src/utils/docs.ts +++ b/src/utils/docs.ts @@ -1,4 +1,3 @@ -import { notFound } from '@tanstack/react-router' import { fetchDocs, fetchDocsPage, @@ -7,6 +6,7 @@ import { fetchFile, fetchRepoDirectoryContents, } from './docs.functions' +import { createDocsNotFoundError } from './docs-errors' import { removeLeadingSlash } from './utils' export const loadDocs = async ({ @@ -21,11 +21,7 @@ export const loadDocs = async ({ docsPath: string }) => { if (!branch || !docsRoot || !docsPath) { - throw notFound({ - data: { - message: 'No doc was found here!', - }, - }) + throw createDocsNotFoundError() } return fetchDocs({ @@ -49,11 +45,7 @@ export const loadDocsPage = async ({ docsPath: string }) => { if (!branch || !docsRoot || !docsPath) { - throw notFound({ - data: { - message: 'No doc was found here!', - }, - }) + throw createDocsNotFoundError() } return fetchDocsPage({ From d3c6a32b80847102ebc0ac1d50c19836f259bf9d Mon Sep 17 00:00:00 2001 From: Virgile RIETSCH Date: Wed, 22 Apr 2026 18:43:53 +0200 Subject: [PATCH 2/4] docs: add PR screenshot for structured outputs error --- .../ai-guides-structured-outputs-error.png | Bin 0 -> 70740 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/pr-assets/ai-guides-structured-outputs-error.png diff --git a/.github/pr-assets/ai-guides-structured-outputs-error.png b/.github/pr-assets/ai-guides-structured-outputs-error.png new file mode 100644 index 0000000000000000000000000000000000000000..1947a27c8b42faeb97e3ef4aba3b01a1fae9d070 GIT binary patch literal 70740 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 liya}q-kw^={V&aSE}BlxuwSkmuz>>p Date: Wed, 22 Apr 2026 19:41:19 +0200 Subject: [PATCH 3/4] fix(docs): preserve markdown redirect handling --- ...ion.docs.framework.$framework.{$}[.]md.tsx | 20 +++++++++++++++++-- .../$libraryId/$version.docs.{$}[.]md.tsx | 18 +++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx b/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx index 9e71876fe..d9c44ffa0 100644 --- a/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx +++ b/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx @@ -1,7 +1,7 @@ import { findLibrary, getBranch } from '~/libraries' import { isDocsNotFoundError } from '~/utils/docs-errors' -import { loadDocs } from '~/utils/docs' -import { notFound, createFileRoute } from '@tanstack/react-router' +import { loadDocs, resolveDocsRedirect } from '~/utils/docs' +import { notFound, redirect, createFileRoute } from '@tanstack/react-router' import { filterFrameworkContent } from '~/utils/markdown/filterFrameworkContent' import { getPackageManager } from '~/utils/markdown/installCommand' @@ -46,6 +46,22 @@ export const Route = createFileRoute( }) } catch (error) { if (isDocsNotFoundError(error)) { + const redirectPath = await resolveDocsRedirect({ + repo: library.repo, + branch: getBranch(library, version), + docsRoot: root, + docsPaths: docsPath + ? [`framework/${framework}/${docsPath}`, `${framework}/${docsPath}`] + : [], + }) + + if (redirectPath !== null) { + throw redirect({ + href: `/${libraryId}/${version}/docs/${redirectPath}.md`, + statusCode: 308, + }) + } + throw notFound() } diff --git a/src/routes/$libraryId/$version.docs.{$}[.]md.tsx b/src/routes/$libraryId/$version.docs.{$}[.]md.tsx index 190104092..a37af6db7 100644 --- a/src/routes/$libraryId/$version.docs.{$}[.]md.tsx +++ b/src/routes/$libraryId/$version.docs.{$}[.]md.tsx @@ -1,7 +1,7 @@ -import { createFileRoute, notFound } from '@tanstack/react-router' +import { createFileRoute, notFound, redirect } from '@tanstack/react-router' import { getBranch, getLibrary, type LibraryId } from '~/libraries' import { isDocsNotFoundError } from '~/utils/docs-errors' -import { loadDocs } from '~/utils/docs' +import { loadDocs, resolveDocsRedirect } from '~/utils/docs' import { filterFrameworkContent } from '~/utils/markdown/filterFrameworkContent' import { getPackageManager } from '~/utils/markdown/installCommand' @@ -35,6 +35,20 @@ export const Route = createFileRoute('/$libraryId/$version/docs/{$}.md')({ }) } catch (error) { if (isDocsNotFoundError(error)) { + const redirectPath = await resolveDocsRedirect({ + repo: library.repo, + branch: getBranch(library, version), + docsRoot: root, + docsPaths: [docsPath], + }) + + if (redirectPath !== null) { + throw redirect({ + href: `/${libraryId}/${version}/docs/${redirectPath}.md`, + statusCode: 308, + }) + } + throw notFound() } From c692ce4eacff18ea3196708fe35e32ea241ad9dd Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 17:51:10 +0000 Subject: [PATCH 4/4] ci: apply automated fixes --- .../$version.docs.framework.$framework.{$}[.]md.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx b/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx index d9c44ffa0..c49d1a3f4 100644 --- a/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx +++ b/src/routes/$libraryId/$version.docs.framework.$framework.{$}[.]md.tsx @@ -51,7 +51,10 @@ export const Route = createFileRoute( branch: getBranch(library, version), docsRoot: root, docsPaths: docsPath - ? [`framework/${framework}/${docsPath}`, `${framework}/${docsPath}`] + ? [ + `framework/${framework}/${docsPath}`, + `${framework}/${docsPath}`, + ] : [], })