A Wiki Space can be created with a route of wiki or wiki/<something>. Such a route can never be served as a public page, so visiting it shows a blank page instead of the wiki content (or a clear error).
/wiki/* is reserved for the editor SPA:
wiki/hooks.py routes every /wiki/<path> to the SPA (to_route: "wiki").
- The public page renderer explicitly refuses these paths (
wiki_document.py: if self.path == "wiki" or self.path.startswith("wiki/"): return False).
- The SPA has no matching route and no catch-all, so it mounts nothing → blank screen.
The conflict is already known internally — wiki/install.py deliberately uses route docs instead of wiki — but nothing stops a user from picking a reserved route.
To Reproduce
- Create a Wiki Space with route
wiki/first-page.
- Add and publish a page under it.
- Visit
http://<site>/wiki/first-page.
Result: blank page.
Expected behavior
Saving a Wiki Space with route wiki or wiki/<x> should raise a clear validation error instead of silently producing an unreachable page.
Notes
This also affects V2 → V3 migration: the legacy default Space route was wiki, so those spaces hit the same problem.
A Wiki Space can be created with a route of
wikiorwiki/<something>. Such a route can never be served as a public page, so visiting it shows a blank page instead of the wiki content (or a clear error)./wiki/*is reserved for the editor SPA:wiki/hooks.pyroutes every/wiki/<path>to the SPA (to_route: "wiki").wiki_document.py:if self.path == "wiki" or self.path.startswith("wiki/"): return False).The conflict is already known internally —
wiki/install.pydeliberately uses routedocsinstead ofwiki— but nothing stops a user from picking a reserved route.To Reproduce
wiki/first-page.http://<site>/wiki/first-page.Result: blank page.
Expected behavior
Saving a Wiki Space with route
wikiorwiki/<x>should raise a clear validation error instead of silently producing an unreachable page.Notes
This also affects V2 → V3 migration: the legacy default Space route was
wiki, so those spaces hit the same problem.