You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Legacy __ scoped-package registry URLs 500 (indexed by Google, no redirect)
Repo: TanStack/tanstack.com (registry UI).
Bug
Two URL forms indexed by Google per scoped package:
Canonical …/%2540scope%252Fname → 200
Legacy …/%40scope__name → 500
Commit 0f55472 ("chore: add audit guardrails", 2026-06-24, direct to main) switched slug codec to encodeURIComponent/decodeURIComponent and removed the old inline slug.replace('__', '/') decode + name.replace('/', '__') links. Legacy __ URLs still in Google index, no redirect → hard 500.
Per-URL-form, not per-package
form
router-core
apollo/client
firfi/quint-connect
canonical %2540…%252F…
200
200
200
legacy %40…__…
500
500
500
No package immune (tanstack __ also 500s). User hits whichever form Google served. All-scoped __ sweep: 183/183 → 500; canonical + unscoped → 200.
exportfunctiondecodePackageNameSlug(slug: string){letnext=slugfor(leti=0;i<2;i++){// double-encoding only (%2540→%40→@)try{constd=decodeURIComponent(next);if(d===next)returnd;next=d}catch{returnslug}}returnnext}
SEO/crawlers/shared-links: legacy __ URLs Google serves = 500, user sees error not listing (videos). Not seen browsing registry UI or when Google serves canonical URL.
Fix
Preferred: 301 legacy __ slug → canonical encodeURIComponent URL in $packageName route.
Alt: restore __→/ in decodePackageNameSlug (mirror stats route).
Legacy
__scoped-package registry URLs 500 (indexed by Google, no redirect)Repo: TanStack/tanstack.com (registry UI).
Bug
Two URL forms indexed by Google per scoped package:
…/%2540scope%252Fname→ 200…/%40scope__name→ 500Commit
0f55472("chore: add audit guardrails", 2026-06-24, direct tomain) switched slug codec toencodeURIComponent/decodeURIComponentand removed the old inlineslug.replace('__', '/')decode +name.replace('/', '__')links. Legacy__URLs still in Google index, no redirect → hard 500.Per-URL-form, not per-package
%2540…%252F…%40…__…No package immune (tanstack
__also 500s). User hits whichever form Google served. All-scoped__sweep: 183/183 → 500; canonical + unscoped → 200.Repro
Videos
__→ error): **Screen.Recording.2026-07-19.at.1.10.59.PM.mov
__→ error): **Screen.Recording.2026-07-19.at.1.30.27.PM.mov
Root cause (code)
Links pinned to
3b4add9.decodePackageNameSlugonly percent-decodes, no__→/:Flow:
$packageName.tsxloader →decodePkgName→@scope__name(unchanged) →getIntentPackageDetail({name})→ npm-name regex reject → 500. Errored dehydrated state:Origin: commit
0f55472, per audit P3 "slugs not round-trip safe". Old__→/back-compat still present in stats route, dropped in Intent route.Impact
SEO/crawlers/shared-links: legacy
__URLs Google serves = 500, user sees error not listing (videos). Not seen browsing registry UI or when Google serves canonical URL.Fix
Preferred: 301 legacy
__slug → canonicalencodeURIComponentURL in$packageNameroute.Alt: restore
__→/indecodePackageNameSlug(mirror stats route).