error-page
The whole body of an error response: the status, one honest sentence, a way back, and 500 references an admin can use.
404: not found
<div rst-error >
<p rst-error-status >404</p >
<h1 rst-error-title >We can't find that page</h1 >
<p rst-error-body >The link may be out of date, or the page may have moved. Check the address, or go back to the start.</p >
<p rst-error-cta >
<a rst-btn ="primary" href ="/" >Start page</a >
</p >
</div >
{{ template "error-page" dict "Status" 404 "HomeHref" "/" }}
403: forbidden
<div rst-error >
<p rst-error-status >403</p >
<h1 rst-error-title >You can't see this</h1 >
<p rst-error-body >Your account doesn't have access here. If you think it should, ask whoever runs this site.</p >
<p rst-error-cta >
<a rst-btn ="primary" href ="/" >Start page</a >
<a rst-btn href ="/posts" >Go back</a >
</p >
</div >
{{ template "error-page" dict "Status" 403 "HomeHref" "/" "BackHref" "/posts" }}
422: unprocessable
<div rst-error >
<p rst-error-status >422</p >
<h1 rst-error-title >That didn't go through</h1 >
<p rst-error-body >Something in what was sent wasn't right. Go back and try again; nothing was saved.</p >
<p rst-error-cta >
<a rst-btn ="primary" href ="/" >Start page</a >
<a rst-btn href ="/posts/1/edit" >Go back</a >
</p >
</div >
{{ template "error-page" dict
"Status" 422
"HomeHref" "/"
"BackHref" "/posts/1/edit" }}
500: server error
<div rst-error >
<p rst-error-status >500</p >
<h1 rst-error-title >Something went wrong on our side</h1 >
<p rst-error-body >It's not you. The problem has been recorded. Try again in a moment; if it keeps happening, quote the reference below.</p >
<p rst-error-cta >
<a rst-btn ="primary" href ="/" >Start page</a >
</p >
<p class ="rst-mono" rst-error-ref dir ="auto" >Reference: k3f9tq</p >
</div >
{{ template "error-page" dict "Status" 500 "HomeHref" "/" "Ref" "k3f9tq" }}
A 500 is the one status with a reference: an operator can grep the logs for it.
503: unavailable
<div rst-error >
<p rst-error-status >503</p >
<h1 rst-error-title >We're briefly unavailable</h1 >
<p rst-error-body >The site is being updated or is busy. Try again in a minute.</p >
<p rst-error-cta >
<a rst-btn ="primary" href ="/" >Start page</a >
</p >
</div >
{{ template "error-page" dict "Status" 503 "HomeHref" "/" }}
Anything else: the generic pair
<div rst-error >
<p rst-error-status >418</p >
<h1 rst-error-title >Something's not right</h1 >
<p rst-error-body >That request couldn't be completed. Go back and try again.</p >
<p rst-error-cta >
<a rst-btn ="primary" href ="/" >Start page</a >
</p >
</div >
{{ template "error-page" dict "Status" 418 "HomeHref" "/" }}
Five statuses are worded in the framework catalog. A sixth falls back to the generic pair rather than rendering a missing key's name at a reader.