Skip to content

fix(dispatcher): downgrade response and error payloads to the caller's version - #525

Merged
filvecchiato merged 2 commits into
mainfrom
fix/versioned-payload-downgrade
Aug 28, 2026
Merged

fix(dispatcher): downgrade response and error payloads to the caller's version#525
filvecchiato merged 2 commits into
mainfrom
fix/versioned-payload-downgrade

Conversation

@filvecchiato

Copy link
Copy Markdown
Collaborator

The frame carried a downgraded version byte while the payload inside kept its own, so a peer that asked in an older protocol version would receive a newer variant it cannot decode. Both the response and the domain-error path were affected.

  • Latent until now: every payload had exactly one version, so the two tags always agreed.
  • downgrade_call_error in frame.rs maps the domain payload through FromLatest; framework variants pass through.
  • Regenerates the dispatcher, hence the size. #![allow(clippy::unit_arg)] because the downgrade is emitted uniformly, including for unit payloads where it is a no-op.

…s version

The frame carried a downgraded version byte while the payload inside kept its
own, so a peer that asked in an older version would receive a newer variant it
cannot decode. Latent while every payload had one version.
@filvecchiato
filvecchiato requested a review from a team August 27, 2026 10:23
@pgherveou
pgherveou added this pull request to the merge queue Aug 27, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 27, 2026
@filvecchiato
filvecchiato added this pull request to the merge queue Aug 28, 2026
Merged via the queue into main with commit 3db48a7 Aug 28, 2026
3 checks passed
@filvecchiato
filvecchiato deleted the fix/versioned-payload-downgrade branch August 28, 2026 06:08
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