coder / coder/websocket

1008 unexpected data message: When using htmx client

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

Description

Hi,

I seem to be having issues using this library when using it htmx as the client, specifically version 2 of htmx. I am also testing this on Firefox (if browser may make a difference.
I tend to see either this error `Connection Closed: 1008 unexpected data message` or sometimes I see `Invalid RSV bits ...`.

I am not sure how to debug what is going on. But I noticed there was another issue where someone getting similar errors in issue #339.

I tried using another library, https://github.com/gobwas/ws, and it seems to work with this library :thinking:. See this commit here for an example where it works: https://gitlab.com/hmajid2301/banterbus/-/commit/a7501484832f51f430e83da1e39dacd01a0b6860.

See this commit here for a version with this library causing issues: https://gitlab.com/hmajid2301/banterbus/-/blob/9bcd9d73690df9cd3fdcddafc4498a1428497210/internal/transport/http.go

Please let me know if there is anything I can do to help :heart: .

## Reproduce

```bash
git clone https://gitlab.com/hmajid2301/banterbus.git
git checkout 9bcd9d73690df9cd3fdcddafc4498a1428497210
go run main.go

# Go to localhost:8080
```

- Try to submit the input `Create Room`
- Inspect network traffic
- Notice the error in the response
- Of the web socket request

![image](https://github.com/user-attachments/assets/2d5c1702-3bf8-4e10-a823-3c27caaf2815)

## Version

```shell
cat go.mod
# ...
nhooyr.io/websocket v1.8.11

cat index.html
#
https://unpkg.com/htmx.org@2.0.0
https://unpkg.com/htmx-ext-ws@2.0.0/ws.js

firefox --version
Mozilla Firefox 128.0
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce with the banterbus repository at commit 9bcd9d73690df9cd3fdcddafc4498a1428497210, run `go run main.go`, and submit “Create Room” from Firefox with htmx 2.0. Start by reading internal/transport/http.go and comparing it with the working gobwas/ws commit. Inspect the WebSocket network response to isolate the 1008 or RSV error; done means the cause is identified and the htmx reproduction works or has clear guidance.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, javascript
Domain
backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.