diff --git a/packages/router-core/src/router.ts b/packages/router-core/src/router.ts index 23e9f99d0c6..caee16c12e3 100644 --- a/packages/router-core/src/router.ts +++ b/packages/router-core/src/router.ts @@ -1883,8 +1883,16 @@ export class RouterCore< const fn = route.options.params?.stringify ?? route.options.stringifyParams if (fn) { - changedParams = true - Object.assign(nextParams, fn(nextParams)) + try { + Object.assign(nextParams, fn(nextParams)) + changedParams = true + } catch { + // Ignore errors here. When a paired parseParams is defined, + // extractStrictParams will re-throw during route matching, + // storing the error on the match and allowing the route's + // errorComponent to render. If no parseParams is defined, + // the stringify error is silently dropped. + } } } }