Repository navigation
Fix Functions RPC URLs and orchestration query page sizes - #342
Merged
andystaples merged 2 commits intoNov 6, 2026
Merged
andystaples merged 2 commits into
andystaples merged 2 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
There are no active review issues for the Functions client RPC endpoint and query page-size changes.
No open issues 🎉
What changed in this PR
This PR fixes RPC endpoint handling and query page sizes in the Azure Functions clients without changing core SDK or direct Durable Task Scheduler client behavior.
Changes:
- Normalize HTTP(S) RPC addresses before opening gRPC channels, preserving other target formats.
- Cap query pages at 1000 instances while retaining smaller explicit sizes, filters, caller-owned queries, and continuation-token pagination.
- Add regression coverage and document the Functions-specific behavior.
| File | Description |
|---|---|
tests/azure-functions-durable/test_client_transport.py |
Tests URL normalization, local gRPC connectivity, page-size limits, and pagination through empty pages. |
azure-functions-durable/README.md |
Explains page-size limits and total-result behavior. |
azure-functions-durable/CHANGELOG.md |
Records the user-facing connection and query fixes. |
azure-functions-durable/azure/durable_functions/client.py |
Applies shared address normalization and query limits to async and sync clients. |
Review effort: Balanced
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
andystaples
approved these changes
Nov 6, 2026
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
get_status_all()andget_status_by()compatibility methods.The URL fix does not convert an old HTTP-only listener into a gRPC listener. The host must supply an endpoint that supports gRPC.
The page-size limit applies only to Functions clients. Core SDK and direct Durable Task Scheduler clients are unchanged. Existing connection settings, task hub metadata, authentication-related interceptor settings, channel options, and channel lifetime are kept.
Checks
The checks used Python 3.13 on Windows. The root
.venvcontains the local packages in editable mode.Before the fix, the first regression test run had 19 failures and 16 passes. It showed the URL-path connection failure against a local gRPC server and query requests with a page size of
2147483647. Two explicit-page-size cases were then added. After the fix, all 37 regression tests passed.Functions unit tests: 448 passed, 90 deselected.
Core client and shared-helper tests: 51 passed.
Azure Managed unit tests: 183 passed.
Source and packaged public-type checks: 0 errors, 0 warnings.
Functions host query tests through Nox: 2 passed, 88 deselected. This run used the existing local Azurite instance.
Python lint, README lint, and whitespace checks passed. The changelog was checked manually.
Test limits