From 616d97ca5e1054c3970375bfb918c99d7d84860c Mon Sep 17 00:00:00 2001 From: Sanjevi Rau Date: Sat, 14 Nov 2026 16:12:32 +0800 Subject: [PATCH] fix(compatibility): a renamed function's old route is not a known issue The compatibility page listed, as 0.2.4's one known issue, that a function removed, renamed or moved to another region keeps its old route until a restart. The official emulator does the same: after a rename, firebase-tools 15.35.0 answers the old route `500 {"code":"ECONNRESET"}`, as Firenook does. The entry goes, the Functions page says the official emulator behaves the same, and the page leaves out the known issues section, and the link to it, while there are none. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01APfZAFCQzCmvhJqWKMT47g --- src/content/docs/docs/services/functions.mdx | 8 ++-- src/lib/compatibility.ts | 13 ++--- src/pages/compatibility.astro | 50 +++++++++++--------- src/pages/firestore-emulator.astro | 9 +++- 4 files changed, 45 insertions(+), 35 deletions(-) diff --git a/src/content/docs/docs/services/functions.mdx b/src/content/docs/docs/services/functions.mdx index 19678a2..12c1d4e 100644 --- a/src/content/docs/docs/services/functions.mdx +++ b/src/content/docs/docs/services/functions.mdx @@ -168,9 +168,11 @@ nothing](/docs/functions/debugging#if-a-save-seems-to-change-nothing), the log, the terminal screen and the console say why. In a terminal, `r` reloads by hand. -In 0.2.4, a function you remove, rename or move to another region (a -`region` param changed in `.env`, for one) keeps its old route until the -emulators restart. A call to the old route answers `500`, and the log says: +A function you remove, rename or move to another region (a `region` param +changed in `.env`, for one) keeps its old route until the emulators restart, +as it does in the official emulator: a call to the old route answers `500` +with `{"code":"ECONNRESET"}` in both (firebase-tools 15.35.0), and Firenook's +log says: ```text firenook functions[us-central1-params]: the source no longer exports this function (record kept from an earlier load) diff --git a/src/lib/compatibility.ts b/src/lib/compatibility.ts index 0470bb8..baec67a 100644 --- a/src/lib/compatibility.ts +++ b/src/lib/compatibility.ts @@ -229,15 +229,12 @@ export const platforms = { /** * What is wrong in this release, found while the docs were checked against * it, each with where the docs show the way around it. Fixes are tracked in - * the engine repository. + * the engine repository. The page leaves the section out while it is empty. + * (A function removed, renamed or moved to another region keeping its old + * route until a restart was listed here; firebase-tools 15.35.0 answers that + * route the same way, `500 {"code":"ECONNRESET"}`, so it is not Firenook's.) */ -export const knownIssues: { area: string; text: string; href: string }[] = [ - { - area: 'Cloud Functions', - text: 'A function you remove, rename or move to another region keeps its old route until a restart, and a call there fails.', - href: '/docs/services/functions', - }, -]; +export const knownIssues: { area: string; text: string; href: string }[] = []; /** * Where the official emulator and production disagree, what Firenook does, diff --git a/src/pages/compatibility.astro b/src/pages/compatibility.astro index ca91a02..cdf007d 100644 --- a/src/pages/compatibility.astro +++ b/src/pages/compatibility.astro @@ -314,30 +314,34 @@ const fixedCount = found.reduce((sum, release) => sum + (release.date ? release. -
-
-
-

Known issues in {site.version}

-

- What is wrong in this release, found while these docs were checked against it. Each one links to the way around - it. -

+ { + knownIssues.length > 0 && ( +
+
+
+

Known issues in {site.version}

+

+ What is wrong in this release, found while these docs were checked against it. Each one links to the way around + it. +

+
+
    + { + knownIssues.map((issue, index) => ( +
  • + {index > 0 && knownIssues[index - 1].area === issue.area ? '' : issue.area} +

    + {withCode(issue.text).map((part) => (part.code ? {part.text} : part.text))}{' '} + The way around it +

    +
  • + )) + } +
-
    - { - knownIssues.map((issue, index) => ( -
  • - {index > 0 && knownIssues[index - 1].area === issue.area ? '' : issue.area} -

    - {withCode(issue.text).map((part) => (part.code ? {part.text} : part.text))}{' '} - The way around it -

    -
  • - )) - } -
-
-
+ + ) + } diff --git a/src/pages/firestore-emulator.astro b/src/pages/firestore-emulator.astro index 4f41c83..d5222a4 100644 --- a/src/pages/firestore-emulator.astro +++ b/src/pages/firestore-emulator.astro @@ -7,6 +7,7 @@ import BenchPairs from '../components/BenchPairs.astro'; import KeepData from '../components/KeepData.astro'; import Faq from '../components/Faq.astro'; import Closing from '../components/Closing.astro'; +import { knownIssues } from '../lib/compatibility'; import firestoreShot from '../assets/console/firestore-dark.png'; import { site } from '../lib/site'; import { page } from '../lib/pages'; @@ -148,7 +149,13 @@ const schema = graph(

Every production feature, edition or client version is not claimed. What - Firestore covers in {site.version}, and the release’s known issues. + Firestore covers in {site.version}{ + knownIssues.length > 0 ? ( + <> + , and the release’s known issues + + ) : null + }.