0 votes
by (140 points)

Hello,

We use the latest version 6.3 websocket rebex, when connected and the initial message sent, everything works well. But when sending another message, an error occurs

'Error occurred: iizsj.bujlw: Unsupported received frame header flags: 0x40'

In the text log, the error is only the one above, how can we debug this?

Applies to: Rebex WebSocket

1 Answer

0 votes
by (144k points)

Hello,

This error indicates that the server sent a WebSocket data frame with one of the 'reserved' bits (RSV1) enabled. According to the specification (RFC 6455), reserved bits:

MUST be 0 unless an extension is negotiated that defines meanings
for non-zero values. If a nonzero value is received and none of
the negotiated extensions defines the meaning of such a nonzero
value, the receiving endpoint MUST _Fail the WebSocket
Connection_.

In other words, this looks like the server is using an extension that has not been negotiated with the client.

Or it might be a symptom of a different issue.

To make it possible for us to pinpoint the problem, would it be possible to create a communication log at LogLevel.Verbose (as described here) and mail the relevant part to us for analysis (after removing any potentially sensitive data)?

Alternatively, if there is any way we could reproduce this problem ourselves, please let us know. We would then look into the issue.

by (140 points)
Hello, send log file to your email.
by (70.2k points)
Thank you for the log file. It helped a lot to diagnose the issue.

The issue is caused by using the permessage-deflate extension (defined by RFC 7692), which is currently unsupported by Rebex WebSocket solution.

You sent this HTTP request header:
 Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

which enabled the permessage-deflate extension at the server (but not at the client). This extension uses reserved RSV1 flag to specify that compression is in use.


To solve the issue, please do set permessage-deflate extension. Or even better, do not set the Sec-WebSocket-Extensions header because the client will not be able to handle the specified extensions anyway.


However, we are planning to add support for permessage-deflate extension in a future.
...