fastify / fastify/fastify-http-proxy

Crash when using with fastify-http-proxy websockets

Open
#314 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
395
Forks
108
Avg merge
1d 19h
Merged PRs (30d)
2

Description

### Prerequisites

- [X] I have written a descriptive issue title
- [X] I have searched existing issues to ensure the bug has not already been reported

### Fastify version

4.20.0

### Plugin version

8.2.0

### Node.js version

16.18.1

### Operating system

Linux

### Operating system version (i.e. 20.04, 11.3, 10)

22.04

### Description

Adding both a websocket endpoint and a proxy to a websocket endpoint doesn't work. Error seems mostly the same as https://github.com/fastify/fastify-websocket/issues/249. If I switch around the order I add the proxy and websocket endpoint, I can get it to log the error and continue instead of just crashing, but still doesn't work.

```
Error [ERR_INTERNAL_ASSERTION]: This is caused by either a bug in Node.js or incorrect usage of Node.js internals.
Please open an issue with this stack trace at https://github.com/nodejs/node/issues

at new NodeError (node:internal/errors:387:5)
at assert (node:internal/assert:14:11)
at ServerResponse.assignSocket (node:_http_server:280:3)
at Server. (/home/msundvick/Documents/simulator/sgpsim/node_modules/@fastify/http-proxy/index.js:91:19)
at Server.emit (node:events:525:35)
at Server.emit (node:domain:489:12)
at onParserExecuteCommon (node:_http_server:772:14)
at onParserExecute (node:_http_server:686:3) {
code: 'ERR_INTERNAL_ASSERTION'
}
```

### Steps to Reproduce

```
const proxy = await import("@fastify/http-proxy");
if (backend) {
await fastify.register(proxy, {
upstream: backend,
prefix: "/api", // optional
http2: false, // optional
websocket: true,
});
}

await fastify.register(require("@fastify/websocket"));
fastify.register(async function (fastify) {
fastify.get("/api2", { websocket: true }, (connection, req) => {});
});
```

### Expected Behavior

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.