From 8be208ae391fe5b58f13e25538c4d2233e5855e0 Mon Sep 17 00:00:00 2001 From: Julien Nicolas Date: Sat, 12 Sep 2026 13:48:22 +0200 Subject: [PATCH] fix(experience): opt out of browser auto-translation Browser auto-translation rewrites the text nodes React created, so the next update throws `NotFoundError: removeChild` and, with no error boundary, unmounts the whole app: users land on a blank page mid sign-in/sign-up. The experience is already localized per tenant, so the page now ships `translate="no"` and ``. Closes #9590 --- .changeset/khaki-pumas-invite.md | 9 +++++++++ packages/experience/index.html | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/khaki-pumas-invite.md diff --git a/.changeset/khaki-pumas-invite.md b/.changeset/khaki-pumas-invite.md new file mode 100644 index 000000000000..fc3b81eaa27a --- /dev/null +++ b/.changeset/khaki-pumas-invite.md @@ -0,0 +1,9 @@ +--- +"@logto/experience": patch +--- + +opt the sign-in experience out of browser auto-translation + +Browser auto-translation replaces the text nodes React created (``). React's DOM bookkeeping no longer matches the document, so the next update throws `NotFoundError: Failed to execute 'removeChild' on 'Node'`; the experience app has no error boundary, so the whole tree unmounts and the user is left on a blank page in the middle of signing in or signing up — a reload is the only way out. + +The experience is already localized per tenant (custom phrases plus language detection), so the page now ships `translate="no"` and ``, which is what Chrome, Edge and Safari read before offering or applying a translation. diff --git a/packages/experience/index.html b/packages/experience/index.html index 8ee801b5f7b6..f83d02734a6c 100644 --- a/packages/experience/index.html +++ b/packages/experience/index.html @@ -1,10 +1,13 @@ - + + +