Skip to content

Bump Akka from 1.5.64 to 1.5.70#525

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/Akka-1.5.70
Open

Bump Akka from 1.5.64 to 1.5.70#525
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/Akka-1.5.70

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 9, 2026

Copy link
Copy Markdown
Contributor

Updated Akka from 1.5.64 to 1.5.70.

Release notes

Sourced from Akka's releases.

1.5.70

1.5.70 July 2nd, 2026

Akka.NET v1.5.70 is a maintenance release that adds a new "last-N" query offset to Akka.Persistence.Query, resolves two Akka.Streams reliability issues and improves BroadcastHub performance under high consumer counts, and fixes a consistent-hashing router bug that could wedge an entire cluster after a 32-bit hash collision.

Akka.Persistence.Query

  • Add Offset.FromEnd(int count) — "last-N events" query offset: Introduces Offset.FromEnd(int count), a new query-input-only offset type that begins a read journal query at the Nth event from the end of history rather than from the beginning. The offset is resolved at stream materialization into a concrete Sequence start position; no interface changes or wire-format changes are required. Includes opt-in TCK spec (FromEndOffsetSpec) for plugin authors.

Akka.Streams Bug Fixes

  • Fix: async enumerable source disposal ordering: Fixes a race in Source.From(IAsyncEnumerable<T>) where the underlying enumerator could be disposed before all elements were delivered to downstream, causing ObjectDisposedException on high-throughput pipelines.
  • Fix: ChannelSink drops final element on backpressure - Fixes #​8285: ChannelSink was discarding the last element in a sequence whenever the downstream Channel<T> applied backpressure during completion. The sink now correctly delivers all elements before signaling completion.

Akka.Streams Performance

Akka.Core Bug Fixes

  • Fix: consistent-hashing router could wedge cluster-wide after a 32-bit hash collision - Fixes #​8031: When two virtual nodes collided in the 32-bit consistent-hash ring (increasingly likely at high routee counts, e.g. when the ring was rebuilt after a node was downed), ConsistentHash.Create threw "An entry with the same key already exists". The consistent-hashing router swallowed the exception and returned NoRoutee for every subsequent message until a manual restart. The ring now linear-probes to the next free slot on a collision instead of throwing. This keeps the hash distribution unchanged and produces a byte-identical ring to prior versions whenever no collision occurs (safe for rolling upgrades), and also protects Akka.Cluster.Tools' ClusterReceptionist, which builds the same ring.

2 contributors since release 1.5.69

COMMITS LOC+ LOC- AUTHOR
22 2274 332 Aaron Stannard
1 97 4 beminee

To see the full set of changes in Akka.NET v1.5.70, click here.

Changes:

  • d48457256ebeaccca7f7add4f6d27b5b5a7ec931 Release Akka.NET v1.5.70 (#​8306)
  • cdec84e00ef84170cfb7e05a506d3f73c680df92 Fix #​8031: consistent-hashing router wedges cluster-wide on 32-bit hash collision (#​8294) [ #​8293, #​2, #​3, #​1 ]
  • 71e8a96013e69892ffaf5bc9b98a4a5f16bde0f2 Fix ClusterClientSpec with two-phase shutdown handshake (#​8008)
  • 797662709d64b760ed95c2d2d26191717337b4e0 Fix ClusterClientSpec flaky shutdown test with ask-pattern confirmation (#​8007)
  • 611e2eda4d241bfba8e3ded22ada805672158721 Fix racy ClusterClientSpec server restart test (#​8004)
  • 0d0c953e11b986c6b88f0cc34bddd4f588be7cfd Fix EventFilterTestBase logger-subscription race (#​7797, partial) [ #​8301 ]
  • 2c2554349926c7abe98d170f607bfb5cdeeea79d Fix race condition in TcpSpec connection failure test (#​7870)
  • 4a2098b7e09c5b6b9f9b5e7c6bb9c6da14932988 Fix race condition in TCP abort test for Linux compatibility (#​7815) [ #​7813 ]
  • 47ebf2a4d1aac0cf0b511ad2b0463d138aa2e69a Harden TcpSpec Outgoing_TCP_stream_must_handle_when_connection_actor_terminates_unexpectedly (backport of #​7827) (#​8301) [ #​8132, #​8078 ]
  • 8d1caea619c883febcee9f36a6912a7d6c9e0701 fix: make A_dispatcher_must_process_messages_one_at_a_time deterministic (#​8300)
See More
  • a8b3b2fb607c5468caaf038d50ea953c436e946d fix: prevent ephemeral-port overflow in DotNettyTransportShutdownSpec (#​8273)
  • 362c9c39567180e2b866ee13c916e8830108b590 Fix metrics specs race conditions and constructor deadlocks (#​7798)
  • e4734026614eb171fba6921a3d4d446c8c55a22c Fix race condition in DistributedPubSubRestartSpec (#​8013)
  • c82fef5b2ad7535f0a520142d282f86082343bde fix: Eliminate race condition in Log_dead_letters test (#​7950)
  • 01c01e41cb0b4ed372cc446a8046d76446960ce3 fix(cluster.tools): fix race condition in DistributedPubSubRestartSpec (#​7924)
  • 05bea51df2abd4be10eb4347a0bf7a6d7fefdfb7 Fix race condition in HubSpec.MergeHub_must_keep_working_even_if_one_of_the_producers_fail (#​7852) [ #​7712 ]
  • 5bc9fb284eb804777959cf788ad02be2d782b9e5 Fix race condition in ClusterLogSpec tests (#​7831)
  • 4078bd49f8d5d8c00f578ba11608bbf6602d9194 Release Akka.NET v1.5.70-beta2 (#​8292)
  • 8b44f140807550ca1bc8b11a665141f962c6c0b7 fix: #​8285 ChannelSink drops final element on backpressure (backport to v1.5) (#​8291) [ #​8289 ]
    ... (truncated)

1.5.70-beta2

1.5.70-beta2 June 30th, 2026

Akka.NET v1.5.70-beta2 is a beta release with a bug fix for ChannelSink dropping the final element under backpressure.

Akka.Streams Bug Fixes

2 contributors since release 1.5.70-beta1

COMMITS LOC+ LOC- AUTHOR
2 115 15 Aaron Stannard
1 97 3 beminee

Changes:

  • 4078bd49f8d5d8c00f578ba11608bbf6602d9194 Release Akka.NET v1.5.70-beta2 (#​8292)
  • 8b44f140807550ca1bc8b11a665141f962c6c0b7 fix: #​8285 ChannelSink drops final element on backpressure (backport to v1.5) (#​8291) [ #​8289 ]
  • 0bbbc62ec6ce70af0a1f7e96fc01ceecd2d7962f Release Akka.NET v1.5.70-beta1 (#​8283)
  • 938a6290978563e9bc2cb43f83f3dcace9d703c5 Add a "from the end" (last-N) query Offset to Akka.Persistence.Query (#​8245) [ #​8244 ]
  • 9b56af82ea89f5e31c223c5cc3a815f977378502 Backport PR #​8265 and PR #​8264 to v1.5
  • 3b91d55dcf7af7a1f2aeb1fba3cd411e54ec7eff fix: backport #​8278 — suppress GHSA-2m69-gcr7-jv3q in v1.5 (#​8280) [ dev/netclaw#​1444 ]

This list of changes was auto generated.

1.5.70-beta1

1.5.70-beta1 June 23rd, 2026

Akka.NET v1.5.70-beta1 is a beta release with a new Offset.FromEnd query offset for Akka.Persistence.Query, bug fixes for Akka.Streams async enumerable disposal, and a performance improvement for BroadcastHub with high consumer counts.

Akka.Persistence.Query

  • Add Offset.FromEnd(int count) — "last-N events" query offset: Introduces Offset.FromEnd(int count), a new query-input-only offset type that begins a read journal query at the Nth event from the end of history rather than from the beginning. The offset is resolved at stream materialization into a concrete Sequence start position; no interface changes or wire-format changes are required. Includes opt-in TCK spec (FromEndOffsetSpec) for plugin authors.

Akka.Streams Bug Fixes

  • Fix: async enumerable source disposal ordering: Fixes a race in Source.From(IAsyncEnumerable<T>) where the underlying enumerator could be disposed before all elements were delivered to downstream, causing ObjectDisposedException on high-throughput pipelines.

Akka.Streams Performance

1 contributor since release 1.5.69

COMMITS LOC+ LOC- AUTHOR
3 1438 180 Aaron Stannard

Changes:

  • 0bbbc62ec6ce70af0a1f7e96fc01ceecd2d7962f Release Akka.NET v1.5.70-beta1 (#​8283)
  • 938a6290978563e9bc2cb43f83f3dcace9d703c5 Add a "from the end" (last-N) query Offset to Akka.Persistence.Query (#​8245) [ #​8244 ]
  • 9b56af82ea89f5e31c223c5cc3a815f977378502 Backport PR #​8265 and PR #​8264 to v1.5
  • 3b91d55dcf7af7a1f2aeb1fba3cd411e54ec7eff fix: backport #​8278 — suppress GHSA-2m69-gcr7-jv3q in v1.5 (#​8280) [ dev/netclaw#​1444 ]

This list of changes was auto generated.

1.5.69

1.5.69 June 12th, 2026

Akka.NET v1.5.69 is a maintenance release with bug fixes for Akka.DistributedData state propagation, Akka.Core message rejection handling, and Akka.Streams tracing reliability and backpressure cancellation.

Akka.Streams

Akka.Streams Bug Fixes

  • Fix: observe discarded stream task faults - Fixes #​8241: Resolves a NullReferenceException in the GraphInterpreter when tracing across actor boundaries — the interpreter now safely handles null activity context references during stream teardown.

Akka.Core

Akka.DistributedData

1 contributor since release 1.5.68

Akka.NET v1.5.68 is a maintenance release with bug fixes for Akka.IO TCP connection handling, Akka.Streams stream materialized task faults, and Akka.TestKit xUnit 3 parallel context management.

Akka.IO Bug Fixes

  • Fix: report Tcp.CommandFailed when a scheduled connect retry throws - Fixes #​8195: On Linux, a dropped TCP connection could permanently stall the user actor — it never received Tcp.Connected or Tcp.CommandFailed because a PlatformNotSupportedException thrown during a scheduled connect retry was swallowed by the HashedWheelTimerScheduler. The retry is now scheduled as a RetryConnect self-message via IWithTimers, ensuring any exception is surfaced to the commander as Tcp.CommandFailed and the connection actor stops cleanly. The pending timer is also canceled automatically when the actor stops, removing a latent use-after-dispose bug.

Akka.Streams Bug Fixes

Akka.TestKit Bug Fixes

  • Fix: wrap outer SynchronizationContext in ActorCellKeepingSynchronizationContext - ActorCellKeepingSynchronizationContext now accepts an optional inner SynchronizationContext and delegates scheduling to it while wrapping callbacks with the cell-pinning window. This prevents test hangs in downstream consumers such as Akka.Hosting.TestKit whose async IHost lifecycle depends on xUnit v3's MaxConcurrencySyncContext scheduling.

1 contributor since release 1.5.67

COMMITS LOC+ LOC- AUTHOR
3 476 119 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.68, click here.

Changes:

  • 5183965a12bf4c3e2f076b30680e39ba31ab6f09 Release Akka.NET v1.5.69 (#​8262)
  • 7e0e8189d1b4a5942aaf0ad24729dee94a2c0cc0 Akka.Streams: add cancellation-aware Source.Queue offers (#​8248) — backport to v1.5 (#​8258)
  • 10a30fe796e0c5742fecdb042ff9832c8ee8dcac Propagate trace context across the .Async() actor boundary (#​8243) (#​8246) [ #​8241 ]
  • 8fcde23e57c0455f7b9af1e58bb3cb52ae6ca2d3 Harden flaky v1.5 unit tests (#​8249)
  • bc62882145ae19f7986172360ad56a93d1b3c8d2 Fix NullReferenceException in GraphInterpreter when tracing across actor boundaries (#​8241) (#​8242) [ #​8243 ]
  • 7d04bb487d11b6433197dea169f3c293e9563e66 fix: RejectOnType should use Rejection, not Failure (#​8231)
    ... (truncated)

1.5.68

1.5.68 May 17th, 2026

Akka.NET v1.5.68 is a maintenance release with bug fixes for Akka.IO TCP connection handling, Akka.Streams stream materialized task faults, and Akka.TestKit xUnit 3 parallel context management.

Akka.IO Bug Fixes

  • Fix: report Tcp.CommandFailed when a scheduled connect retry throws - Fixes #​8195: On Linux, a dropped TCP connection could permanently stall the user actor — it never received Tcp.Connected or Tcp.CommandFailed because a PlatformNotSupportedException thrown during a scheduled connect retry was swallowed by the HashedWheelTimerScheduler. The retry is now scheduled as a RetryConnect self-message via IWithTimers, ensuring any exception is surfaced to the commander as Tcp.CommandFailed and the connection actor stops cleanly. The pending timer is also canceled automatically when the actor stops, removing a latent use-after-dispose bug.

Akka.Streams Bug Fixes

Akka.TestKit Bug Fixes

  • Fix: wrap outer SynchronizationContext in ActorCellKeepingSynchronizationContext - ActorCellKeepingSynchronizationContext now accepts an optional inner SynchronizationContext and delegates scheduling to it while wrapping callbacks with the cell-pinning window. This prevents test hangs in downstream consumers such as Akka.Hosting.TestKit whose async IHost lifecycle depends on xUnit v3's MaxConcurrencySyncContext scheduling.

1 contributor since release 1.5.67

COMMITS LOC+ LOC- AUTHOR
3 476 119 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.68, click here.

Changes:

  • 9a00eff319f2518a7c66715ab0fbd3e0575ea879 Update RELEASE_NOTES.md for 1.5.68 release (#​8216)
  • e5afb74950d1efbd2d8f70741dd16bd50879f193 fix: report Tcp.CommandFailed when a scheduled connect retry throws (#​8195) (#​8214)
  • 2ab48f5e37d1d27b36d9fdd5ef3214bd643078a4 fix: observe discarded stream task faults (#​8212)
  • e6080542bbfb33b0f0a5908fe8e2bb45c4e56689 fix: wrap outer SynchronizationContext in ActorCellKeepingSynchronizationContext (#​8182) [ akkadotnet/Akka.Hosting#​735, akkadotnet/Akka.Hosting#​733 ]

This list of changes was auto generated.

1.5.67

1.5.67 April 25th, 2026

Akka.NET v1.5.67 is a hotfix release that reverts a breaking change to the persistence plugin contract introduced in v1.5.66.

Akka.Persistence: Revert async WriteMessagesAsync/SaveAsync dispatch (#​8163)

v1.5.66 added Task.Yield() inside AsyncWriteJournal.ExecuteBatch and SnapshotStore to move persistence plugin WriteMessagesAsync/SaveAsync calls off the actor thread. While this improved throughput in benchmarks, it silently broke the implicit contract that persistence plugins rely on — that the synchronous preamble of these methods executes in actor context.

This caused failures in plugins that:

  • Access Self inside WriteMessagesAsync (e.g. Akka.Persistence.Sql, Akka.Persistence.EventStore) — throws NotSupportedException off the actor thread
  • Use non-thread-safe collections for write tracking (e.g. Dictionary<string, Task>) — concurrent access from actor thread and thread pool causes InvalidOperationException
  • Send messages to subscribers after writes complete (e.g. Akka.Persistence.Redis) — accesses shared actor state off-thread

This release removes the Task.Yield() calls and restores the original dispatch behavior. A future version may reintroduce this optimization with a more targeted approach that preserves the plugin threading contract.

If you are on v1.5.66, upgrade to v1.5.67 immediately if you use any third-party persistence plugin.

COMMITS LOC+ LOC- AUTHOR
1 3 17 Aaron Stannard

Changes:

  • 2f057e49852313996cc196000a917b1cbaf67588 Update RELEASE_NOTES.md for 1.5.67 release
  • 46371dd4c04fc8bdd2a9eba574a5ed79e1b083b2 revert(persistence): remove Task.Yield() from AsyncWriteJournal and SnapshotStore (#​8163)

This list of changes was auto generated.

1.5.66

1.5.66 April 24th, 2026

Akka.NET v1.5.66 is a significant release with persistence bug fixes, major Akka.Streams improvements including OpenTelemetry trace propagation and non-blocking materialized values, and new serialization security controls.

Akka.Streams: OpenTelemetry Trace Context Propagation

Akka.Streams now propagates System.Diagnostics.Activity trace context end-to-end through stream graphs, including across async stage boundaries, fan-in merges, and fan-out broadcasts. This enables full distributed tracing visibility into stream pipelines when using OpenTelemetry.

For full documentation, see: https://getakka.net/articles/streams/stream-tracing.html

Akka.Streams: Non-Blocking Materialized-Value TaskCompletionSource

All TaskCompletionSource instances used for materialized values across Akka.Streams now use TaskCreationOptions.RunContinuationsAsynchronously, eliminating potential deadlocks and thread-pool starvation when continuations run synchronously on completion.

Akka.Persistence

Akka.Core

New Features

Documentation

4 contributors since release 1.5.65

COMMITS LOC+ LOC- AUTHOR
18 3962 991 Aaron Stannard
8 1627 1952 Gregorius Soedharmo
6 214 177 Matt Kotsenas
1 55 39 schdooz

To see the full set of changes in Akka.NET v1.5.66, click here.

Changes:

  • ed4bd3b22a8e936c3dc61645911a43d6a56ea651 fix(api-approval): update Net.verified.txt files to match v1.5.66 API surface [ #​8158, #​8184, #​8160 ]
  • db7d0c61403b21023ee4b1f97abe37bfabbf6090 Update RELEASE_NOTES.md for 1.5.66 release
    ... (truncated)

1.5.65

1.5.65 April 10th, 2026

Akka.NET v1.5.65 is a maintenance release with important bug fixes for Akka.Cluster.Sharding, Akka.Core configuration, and Akka.TestKit.

Akka.Cluster.Sharding Bug Fixes

  • Fix cluster sharding lease coordination bugs - Fixes three chained bugs that cause shard unavailability (~6 minutes) during rolling restarts when using distributed lease coordination (e.g. Kubernetes leases):
    • #​8146: The backup ShardStopped safety net from #​8055 fires spuriously after every successful rebalance, causing the same shard to be allocated to 2+ nodes simultaneously.
    • #​8147: AwaitingLease stashes HandOff messages indefinitely, preventing the coordinator from reclaiming stuck shards.
    • #​8148: StartShardRebalanceIfNeeded silently skips shards during graceful shutdown when a rebalance is already in progress.

Akka.Core Bug Fixes

Akka.TestKit Bug Fixes

1 contributor since release 1.5.64

COMMITS LOC+ LOC- AUTHOR
3 263 19 Aaron Stannard

To see the full set of changes in Akka.NET v1.5.65, click here.

Changes:

  • aa5ab2083865e50fa0244c5f3730c2df066e11b8 Update RELEASE_NOTES.md for 1.5.65 release (#​8157)
  • c7a8cac586962baf1c50225cb065997669b4faf0 Fix Settings.InjectTopLevelFallback race condition bug (#​8143) (#​8156)
  • 51532eeea088d3046335c5c4245765024c0d184f Fix cluster sharding lease coordination bugs (#​8150) [ #​8146, #​8147, #​8148, #​8055, #​7500 ]
  • e8309deff24090aceb11cd5ad4386ae23e4fbcfe [1.5] Port #​8145 - Fix broken xUnit 3 explicit sender (IAsyncLifetime) (#​8149)

This list of changes was auto generated.

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: Akka
  dependency-version: 1.5.70
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .net code dependencies Pull requests that update a dependency file labels Jul 9, 2026
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment