docs: explain configurable max payload size (payloadStorageMaxPayloadBytes) and fix large payload sample config#360
Open
YunchuWang wants to merge 1 commit into
Conversation
…Bytes) and fix large payload sample config The 10 MB error in issue Azure-Samples#359 comes from LargePayloadStorageOptions.MaxPayloadBytes (default 10 MB / 10240 KB), which is configurable, not a hard limit. The samples never documented it, and PAYLOAD_SIZE_BYTES (the sample's own generated test-data size) was easy to confuse with the cap. - LargePayload + LargePayloadFanOutFanIn host.json: add payloadStorageMaxPayloadBytes (15728640 = 15 MiB) - Both Durable Functions READMEs: update host.json snippet, add a 'Maximum payload size' section explaining the 10 MB default + exact fail-fast error + how to raise the cap, disambiguate PAYLOAD_SIZE_BYTES vs payloadStorageMaxPayloadBytes, and update the Local settings table - durable-task-sdks/dotnet/LargePayload README: note LargePayloadStorageOptions.MaxPayloadBytes default cap and how to raise it in Program.cs Fixes Azure-Samples#359 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Issue #359 reports that the .NET isolated Durable Functions LargePayload sample fails when
PAYLOAD_SIZE_BYTESexceeds ~10 MB, with:Root cause (verified against the
microsoft/durabletask-dotnetSDK source)PayloadInterceptorwhen a payload exceedsLargePayloadStorageOptions.MaxPayloadBytes.MaxPayloadBytesdefaults to 10 MB (10 * 1024 * 1024= 10,485,760 bytes; 10,240 KB) and is configurable — not a hard product limit.host.jsonviapayloadStorageMaxPayloadBytes(the sibling of the already-presentpayloadStorageEnabled/payloadStorageThresholdByteskeys).PAYLOAD_SIZE_BYTESis the sample's own generated test-data size — unrelated to the cap. Because the docs never explained the cap or this distinction, the 10 MB limit looked like a hard product limit.What changed
samples/durable-functions/dotnet/LargePayload/host.jsonand.../LargePayloadFanOutFanIn/host.json: addpayloadStorageMaxPayloadBytes: 15728640(15 MiB) so the cap is explicit and demonstrably raised above the 10 MB default.LargePayload,LargePayloadFanOutFanIn): update thehost.jsonsnippet, add a "Maximum payload size" section (explains the 10 MB default, the exact fail-fast error, and how to raise the cap), add a table disambiguatingPAYLOAD_SIZE_BYTESvspayloadStorageMaxPayloadBytes, and clarify thePAYLOAD_SIZE_BYTESrow in the Local settings table.samples/durable-task-sdks/dotnet/LargePayload/README.md: note that the SDK'sLargePayloadStorageOptions.MaxPayloadByteshas the same 10 MB default and how to raise it inProgram.cs.Note on the original assumptions
While implementing this I verified the repo against the reported problem and found several premises were already resolved by prior PRs (#343 / #344):
host.jsonfiles and both READMEs already use the correctpayloadStorage*property names (notlargePayloadStorage*).host.jsonwas not broken — its threshold was already262144(256 KiB, the SDK default) and already matched the README.So this PR focuses on the genuinely-missing piece behind #359: documenting the configurable
payloadStorageMaxPayloadBytescap and disambiguating it fromPAYLOAD_SIZE_BYTES.Fixes #359