Skip to content

[Breaking change]: HTTP3 support in System.Net.Http disabled by default with PublishTrimmed #47443

Closed

Description

@MichalStrehovsky

Description

Setting PublishTrimmed or PublishAot to true in the project will disable HTTP3 support in System.Net.Http.

dotnet/runtime#117655

Version

.NET 10 Preview 6

Previous behavior

HTTP3 support was allowed, but might not have actually worked by default in environments where msquic native library is not available. This resulted in HTTP3 not actually working while the app carried all the code related to it.

New behavior

HTTP3 is disabled and we don't carry the code for it.

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

Since making HTTP3 work requires extra gestures and often doesn't work by default, we'll no longer carry the code for it.

Recommended action

To enable HTTP3 support, set the documented <Http3Support> property to true in PublishTrimmed/PublishAot projects.

Feature area

Networking

Affected APIs

No response


Associated WorkItem - 454939

Activity

  1. added
    🗺️ mapQUESTOnly used as a way to mark an issue as updated for quest. RepoMan should instantly remove it.
    on Jul 17, 2025
  2. removed
    🗺️ mapQUESTOnly used as a way to mark an issue as updated for quest. RepoMan should instantly remove it.
    on Jul 17, 2025
  3. added
    🗺️ mapQUESTOnly used as a way to mark an issue as updated for quest. RepoMan should instantly remove it.
    on Jul 17, 2025
  4. removed
    🗺️ mapQUESTOnly used as a way to mark an issue as updated for quest. RepoMan should instantly remove it.
    on Jul 17, 2025
  5. added
    📌 seQUESTeredIdentifies that an issue has been imported into Quest.
    and removed
    🗺️ reQUESTTriggers an issue to be imported into Quest.
    on Jul 18, 2025
  6. moved this from 🔖 Ready to 🏗 In progress in dotnet/docs July 2025 sprinton Jul 22, 2025
  7. added
    🗺️ mapQUESTOnly used as a way to mark an issue as updated for quest. RepoMan should instantly remove it.
    on Jul 22, 2025
  8. moved this from 🏗 In progress to 👀 In review in dotnet/docs July 2025 sprinton Jul 22, 2025
  9. removed
    🗺️ mapQUESTOnly used as a way to mark an issue as updated for quest. RepoMan should instantly remove it.
    on Jul 22, 2025
  10. moved this from 👀 In review to ✅ Done in dotnet/docs July 2025 sprinton Jul 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

📌 seQUESTeredIdentifies that an issue has been imported into Quest.breaking-changeIndicates a .NET Core breaking change

Type

No type

Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions