coder / coder/websocket

Allow customize how HTTP errors are rendered when `websocket.Accept` fails to upgrade

Open
#545 4 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
5.5k
Forks
372
PR merge metrics
No merged PRs in 30d

Description

IDEA: Might be as simple as a new `HttpErrorRenderer` (or `OnError`, etc.) option added to `websocket.AcceptOptions`. When unspecified, default to a fn that implements current rendering behavior. It would take at minimum a `ctx`, the `err` and the http `status` code.

Nice addition: the full set of `errors.New("..")` would be exposed to user so that one can use `errors.Is` to get more granularity than provided http statuses.

We need this feature in order to produce (a standardized JSON error response format) when an error occurs in order to match the rest of our API which produces this error response format for all of its endpoints. Current hard-coded behavior prevents us to comply with our policy when WS upgrade fails in this library. Our user thus can't systematically assume this nice JSON format and must workaround this limitation...

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.