Skip to content

An address Hatchdoor does not recognise answers with a blank pane or a bare 404 #302

Description

@BattermanZ

This was generated by AI during triage.

Hatchdoor has no answer for an address it does not recognise. Depending on how the visitor arrived, they get either a blank pane with no explanation or a bare browser 404, and the two are inconsistent with each other.

Found while triaging #293, which is where the blank pane first turned up. It is not a link problem. Markdown-style links were only one of several ways to reach it.

What happens

The browser app knows five addresses: the workspace root, /stats, /graph, /settings, and a note at /v/<vault>/n/<slug>. There is no route for anything else, and React Router renders nothing when no route matches. The sidebar, the explorer and the top chrome all render normally, so the result reads as a note that failed to load rather than an address that does not exist. Nothing is shown and nothing is logged.

The server registers the app's index for exactly those same five paths and serves everything else from the built static directory, which 404s when no such file exists. So the same address produces two different outcomes:

how the visitor arrives what they get
client-side navigation, or a reload with the service worker active the app, with an empty main pane and no message
a cold load with no service worker a bare 404 from the static file server, no app at all

The service worker's navigation fallback is what splits these: it serves the cached index for any navigation outside its /api, /vault-assets and /health denylist, so a returning visitor lands in the app and a first-time visitor does not.

How to reach it

Against just dev-start, any address outside the five: /nope, /setting (a typo for /settings), or a note route carrying a slash inside the slug, /v/<vault>/n/20-projects/Beacon%20Launch.md.

In ordinary use it is reached by a mistyped URL, a bookmark from before a note was renamed, a shared link into a vault that has since been disconnected, and any in-note link whose href is not a note address (#293).

What already works

A note route whose slug names no note is handled: the note view says Note not found: <slug>. Only an address matching no route at all is silent. The fix is about the gap around that, not a replacement for it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingready-for-agentImplementation-ready for an engineering agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions