{"section":"known-issues","requestedLocale":"en","requestedSlug":"rewriter-not-receiving-route-updates-from-the-catalog","locale":"en","slug":"rewriter-not-receiving-route-updates-from-the-catalog","path":"docs/en/known-issues/Store Framework/rewriter-not-receiving-route-updates-from-the-catalog.md","branch":"main","content":"## Summary\n\nSome catalog updates related to routes do not arrive at the rewriter. This affects brands, categories, subcategories, and departments, in both directions:\n\n- **New or edited routes** are not received by the rewriter. Running the bootstrap query is normally enough to sync them, but in particular cases it does not work. On the storefront, the route returns no products or displays the \"something exploded\" error.\n- **Changed or deleted routes** leave a stale entry behind, so the URL keeps pointing to the wrong type. A deleted brand, for example, keeps resolving with `map=b`. This divergence can also cause problems on the Intelligent Search.\n\nA useful signal for the second case: compare the path on `pageType` and on the rewriter. If `pageType` returns `fullText` while the rewriter still returns the old type, the pageType was updated and the rewriter was not.\n\n## Simulation\n\n1. Reproduce the missing update:\n\n- _Creation/edit:_ create a new category/subcategory/brand route in the catalog, or edit an existing one, then try to access it on the storefront;\n- _Deletion/change:_ delete an existing brand from the catalog, then look for that brand on the storefront.\n\n\n2. Check what the rewriter has for the path:\n\n    \\{ internal \\{ get(path: \"/path\") \\{ from declarer id query disableSitemapEntry \\} \\}\\}\n\nA `null` response means the rewriter never received the update: run bootstrap and, if that fails, use the `internal.save` guidance below.\nA response carrying the old `query`/`type` means the rewriter kept a stale entry: use the `internal.delete` guidance below.\n\n3. Try the bootstrap query first:\n\n    \\{ bootstrap \\{ brands categories \\}\\}\n\nIf the route is still missing or still stale after the bootstrap, apply the workarounds below.\n\n## Workaround\n\nFor routes that were removed or changed in the catalog but persist in the rewriter, delete the route manually:\n\n    mutation \\{ internal \\{ delete(path: \"/path\") \\{ from id resolveAs \\} \\}\\}\n\n\nFor routes that were created or edited but never arrived, add the route manually:\n\n    mutation saveInternal($route: InternalInput!) \\{ internal \\{ save(route: $route) \\{ from declarer type id query endDate binding resolveAs origin disableSitemapEntry \\} \\}\\}\n\n\n\n    \\{ \"route\": \\{ \"from\": \"\", \"query\": \\{ \"map\": \"\" // \"b\" for brands, for example \\}, \"declarer\": \"vtex.store@2.x\", \"binding\": \"\", \"type\": \"\", \"id\": \"\\{\\{id\\}\\}\", \"origin\": \"vtex.routes-bootstrap@0.4.3:brand-bootstrap\" \\}\\}\n\nAfter either mutation, re-run the `internal.get` query to confirm the path is resolving as expected."}