Skip to content

Conversation

@anders-avos
Copy link
Contributor

Some parts of the SCTP spec isn't fully implemented, which can lead to spurious errors during chunk processing (e.g. ErrHandleInitState). To compensate, pion treats most chunk handling errors as non-fatal.

This change adopts pion's behavior (pion/sctp/association.go#L2756), and also fixes ErrChunkTypeUnhandled to ignore the rest of the SCTP packet, as stated in section 3.2. of the spec.

We have observed ErrHandleInitState with browser peers with intermittently poor network conditions, leading to permanently frozen data channels even after the network conditions improve.

Some parts of the SCTP spec isn't fully implemented, which can lead to
spurious errors during chunk processing (e.g. `ErrHandleInitState`). To
compensate, pion treats most chunk handling errors as non-fatal.

This change adopts pion's behavior, and also fixes
`ErrChunkTypeUnhandled` to only ignore the rest of the SCTP packet, as
stated in section 3.2. of the spec.
@rainliu rainliu merged commit 86cbbb7 into webrtc-rs:master Aug 16, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants