Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion aspnetcore/release-notes/aspnetcore-11.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ author: wadepickett
description: Learn about the new features in ASP.NET Core in .NET 11.
ms.author: wpickett
ms.custom: mvc
ms.date: 05/13/2026
ms.date: 05/14/2026
uid: aspnetcore-11
---
# What's new in ASP.NET Core in .NET 11
Expand Down Expand Up @@ -80,6 +80,8 @@ This section describes miscellaneous new features in .NET 11.

[!INCLUDE[](~/release-notes/aspnetcore-11/includes/runtime-async-shared-framework-preview4.md)]

[!INCLUDE[](~/release-notes/aspnetcore-11/includes/rate-limiting-retry-after-preview-4.md)]

## Breaking changes

Use the articles in [Breaking changes in .NET](/dotnet/core/compatibility/breaking-changes) to find breaking changes that might apply when upgrading an app to a newer version of .NET.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
### Rate-limiting middleware returns accurate `Retry-After` headers

The <xref:System.Threading.RateLimiting.FixedWindowRateLimiter> now reports a <xref:System.Threading.RateLimiting.MetadataName.RetryAfter> metadata value that accurately reflects the next window boundary. The rate-limiting middleware uses this metadata to set the `Retry-After` response header, so clients that exceed the rate limit automatically receive a meaningful retry interval without any extra configuration.

Previously, the `RetryAfter` metadata wasn't reliably set, which meant rejected responses either lacked the header or contained an unhelpful value. With this fix, any app that uses the rate-limiting middleware with a <xref:System.Threading.RateLimiting.FixedWindowRateLimiter> benefits from correct `Retry-After` headers automatically.
Comment thread
wadepickett marked this conversation as resolved.

Additional fixes in `System.Threading.RateLimiting` resolve an issue where <xref:System.Threading.RateLimiting.TokenBucketRateLimiter> mishandled partial token refills during zero-permit acquisition, and improve `System.Threading.RateLimiting.ChainedRateLimiter` to correctly forward idle-duration and replenishment behavior from its inner limiters.

For more information, see [Rate limiting middleware in ASP.NET Core](/aspnet/core/performance/rate-limit).

Thank you [@asbjornvad](https://github.com/asbjornvad) and [@apoorvdarshan](https://github.com/apoorvdarshan) for these contributions!
Loading