Forums Bug Reports Thread

Navbar 'Know' link and all wiki breadcrumbs hardcode /know/index, which 404s if the index page is deleted or its seed fails

Patrick Bass · Jun 6 · 21 · 1 Locked
[Major] [High Priority] [Bug Fixed] [Always Reproduces]
🚀 OP Jun 6, 2026 6:11pm

Area: mobieusKnow (audit p6) · Surface: mobieusKnow navbar entry + breadcrumbs on every desktop know page · Dimension: law-2-nav-orphan · Severity: major

The safe landing is bare /know (routes.php:583 KnowledgeController@index), which renders a directory listing when no index page exists. But NOTHING in the desktop UI links to bare /know — every link goes to /know/index. If a moderator deletes the index page (allowed, no guard), or the non-fatal seed ever fails, the entire desktop wiki becomes unreachable from the nav: the navbar Know link 404s, every breadcrumb 404s, and deletePage redirects the mod straight into a 404. Mobile templates correctly link to bare /know (mobile/knowledge/show.php:30), which exposes the inconsistency.

Evidence

navbar.php:501 <a href="/know/index" class="nav-link">…Know</a>. Breadcrumbs in show.php:92, history.php:31, editor.php:31/40/214, revision.php:101 all point to /know/index. Route table has NO /know/index route; /know/{slug} (routes.php:588) matches slug='index', and KnowledgeController::show() calls abortNotFound() when the page is missing (KnowledgeController.php:51-53). deletePage() has no guard against deleting the index slug (KnowledgeController.php:538-555) and even redirects to /know/index after deleting (line 554). The seed that creates the index page is non-fatal (provision-tenant.sh:1401 'php "$KNOW_SEED" ... || warn').

Suggested fix. Point the navbar and all breadcrumbs at bare /know (let the controller redirect to /know/index when an index page exists, fall back to the listing otherwise), and/or block deletion of the slug 'index' in deletePage(). At minimum change deletePage's post-delete redirect to /know.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 4:59am

Resolved — fixed and deployed. Commit faa14fc59739, shipped dev-first then to all tenants on 2026-06-06.

Changed deletePage's post-delete redirect from /know/index to bare /know. Route /know -> index() redirects to /know/index only when an index page exists, so deleting the index page itself no longer lands on a 404; index() re-renders the listing instead. Added an explaining comment.

Status: fixed. Thread closed and locked.


Patrick Bass
@mobieus

Log in or register to reply to this thread.