- Notifications
You must be signed in to change notification settings - Fork914
Description
When the browser accesses the API for authentication redirection or accessing apps, displaying a JSON error isn't useful! In these circumstances, we should serveindex.html
with an injected error and status code to display.
VS Code does this in meta tags with{{WORKBENCH_WEB_CONFIGURATION}}
:
https://github.com/microsoft/vscode/blob/8a8c175605bb3503dc4515700dfd8dcf68dac98b/src/vs/code/browser/workbench/workbench.html#L19-L20
To display a helpful error in the frontend, we should get the status code and response text:
<metaid="api-response"data-statuscode="{{API_STATUS_CODE}}"data-message="{{API_MESSAGE}}"/>
An example of this is accessing a web app, where it may be offline. This results in a 502 error right now, which isn't helpful to the user. We could send the following to the frontend instead:
<metaid="api-response"data-statuscode="404"data-message="code-server isn't running! Make sure it's active on 'localhost:3000'."/>
This is injected dynamically using a string replace by our static server in Go. The frontend could register on a per-path basis to displayreally friendly errors, but for now we could do a catch-all by making our 404 page check ifdata-statuscode
is set. If so, we'll display the error!