Polkadot SDK stable2603-8 returns lost swap change and hardens XCM
Parity published polkadot-stable2603-8 on 29 October, a patch release for the stable2603 line of the Polkadot SDK that also carries the tag polkadot-v1.22.8. The release notes stress that it contains only patches to crates: no node binaries or Docker images are provided, and there are no breaking changes.
Six crates are updated, among them pallet-asset-conversion, staging-xcm-executor, cumulus-primitives-utility and several Snowbridge components. The user-facing fix is in asset conversion. When a swap for an exact output amount failed, for example because pool liquidity fell below the existential deposit, the function split the input credit into the amount to swap and the change, and on failure returned only the amount to swap. The change was dropped inside a storage transaction that was then rolled back, so the caller lost it. The function now returns the full input on failure, as its documentation always said.
The second change, labelled XCM hardening, fixes regressions introduced by earlier hardening work and adds defence in depth in the XCM executor. The notes describe the main code change as draining asset holdings by ownership when depositing assets with retries, which removes clones, lookups and an intermediate allocation per pass while keeping iteration order and partial-failure behaviour unchanged.
The crates were built and tested with Rust 1.93.0. Release candidates for the next line, stable2609-1, appeared the same day.

What it means
The asset-conversion bug is the kind that never shows in a block explorer as an error: a failed swap simply returned less than was put in. Parachains that include pallet-asset-conversion in their runtimes should pick up the patched crate in their next runtime upgrade; because this is a crates release, nothing changes until each chain ships it.