1.5.74 November 5th, 2026
Akka.NET v1.5.74 backports a batch of Akka.Streams, Cluster.Sharding, Cluster.Tools, Persistence and Hosting bug fixes from dev, plus a large set of de-flaked tests. It also moves NuGet publishing to GitHub Actions.
Akka.Streams
- Ignore
Dispose()on the ActorSystem's shared default materializer -system.Materializer()andActorMaterializer.Create(system)with no custom settings return one materializer that theActorSystemowns. Disposing it, for example in ausingblock, through a scoped DI registration, or in an actor'sPostStop, shut it down for every caller until the system restarted.Dispose()on that shared instance is now ignored. TheActorSystemstill shuts it down on termination, and an explicitShutdown()still stops it. Materializers created with custom settings or on anIActorContextbehave as before. - Fix
Flow.Setupinput forwarding -Flow.Setupgrabbed upstream elements but never pushed them into the flow it built, so they were lost. - Fix inherited attributes in deferred stream operators -
LazyFlow,LazySinkandSource.FromTaskSourcenow materialize their inner graph with the attributes of the enclosing graph, so dispatcher, supervision and other attributes apply to it. - Honor
StreamRefAttributesonSourceRef- TheFinalTerminationSignalDeadline,BufferCapacityandDemandRedeliveryIntervalattributes now take effect on aSourceRef. Before, onlySubscriptionTimeoutdid. Fixes #8878. - Read
final-termination-signal-deadlinefrom HOCON -StreamRefSettings.FinalTerminationSignalDeadlinewas never loaded from configuration and was always zero. - Stage correctness fixes:
UnfoldFlowno longer hangs on its initial seed (#7867, #7906).KeepAlive(IdleInject) no longer injects over an element that upstream already has ready, and its idle deadline starts at the first pull instead of at materialization (#7863, #7881).MergePrioritizedkeeps the configured priority ratios (#7872).RestartWithBackoffsets its reset deadline before starting the inner graph, so a synchronous completion doesn't see a stale deadline (#7861).Source.Lazilyfails its materialized task with the factory's exception instead of a misleading "stopped without completing" error (#8843).PartitionHubconsumers report the real failure when a hub callback task is cancelled, instead of failing with a null exception (#8064).- The outgoing TCP stage completes cleanly when upstream finishes before the connection is established, instead of logging a
NullReferenceException(#8628).
Akka.Cluster.Sharding
- Defer
ShardingProducerControllercleanup until the delivery child terminates - A message that arrived while an idle entity'sProducerControllerwas stopping tried to create a new child with the same name, threwInvalidActorNameExceptionand restarted the controller. Messages for that entity are now buffered until the old child has terminated. Fixes #8850. - Preserve owner termination during shard handoff - When the region that owned a shard terminated mid-rebalance, the handoff kept sending
HandOffto the dead region and stalled untilhandoff-timeout. It now remembers the termination and finishes the handoff.
Akka.Cluster.Tools
- Handle a failed lease release when
ClusterSingletonManagerleaves Oldest - A faultedLease.Release()became an unhandledStatus.Failure, so nobody saw that the release failed. It is now handled and logged.
Akka.Persistence
- Fix race condition in
ReceivePersistentActorasync handlers - TheRunTaskcontinuation could run on the thread pool and touch actor state off the actor thread. It now runs synchronously, as intended.
Akka
- Fix
ByteString.CopyTo(Span/Memory)throwing "Destination is too short" - TheSpan<byte>andMemory<byte>overloads threw whenever a copy stopped partway through a segment, including when the destination was sized exactly tocount. Fixes #8469. - Add
Matchextension methods forOption<T>- NewMatchoverloads inAkka.Util.Extensionstake a function or action for theSomeandNonecases.
Akka.Hosting
- MAUI detection no longer throws under InvariantGlobalization -
AddAkkathrewCultureNotFoundExceptionat startup whenInvariantGlobalizationwas on and a satellite assembly, such as one from Microsoft.Data.SqlClient, was loaded.
Build and tests
- Publish to NuGet via GitHub Actions trusted publishing - Release packages are now pushed from GitHub Actions using NuGet trusted publishing (OIDC) instead of from Azure DevOps with a long-lived API key. Package contents are unchanged.
- De-flaked Remote, Hosting, core, Streams, Persistence, DI, Cluster.Sharding, Cluster.Tools, DistributedData and multi-node specs (#8881, #8882, #8883, #8884). These change tests only.
4 contributors since release 1.5.73
| COMMITS | LOC+ | LOC- | AUTHOR |
|---|---|---|---|
| 65 | 3030 | 1265 | Aaron Stannard |
| 4 | 229 | 87 | Gregorius Soedharmo |
| 3 | 317 | 12 | Ariel Fischer |
| 2 | 48 | 9 | Matt Kotsenas |
To see the full set of changes in Akka.NET v1.5.74, click here.