Skip to content

Cap microsoft-kiota-http below 1.13 in the Microsoft Azure provider - #74090

Merged
shahar1 merged 1 commit into
apache:mainfrom
dabla:fix/cap-microsoft-kiota-http
Oct 2, 2026
Merged

shahar1 merged 1 commit into
apache:mainfrom
dabla:fix/cap-microsoft-kiota-http

Conversation

@dabla

@dabla dabla commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

microsoft-kiota-http 1.13.0 moved the per-request options from request.options to request.extensions. msgraph-core 1.5.1, the latest release, still only runs the middleware pipeline of AsyncGraphTransport when hasattr(request, "options"). With microsoft-kiota-http 1.13 or later, every request made through KiotaRequestAdapterHook therefore skips the redirect, retry, URL replacement and user agent handlers:

  • a drive item download (/content answers 302) returns Graph's raw redirect with an empty body, so run(..., response_type="bytes") returns None;
  • 429 and 503 are no longer retried.

The current constraints-3-3 (1.14.0) and constraints-main (1.14.1) both resolve to an affected version. 1.14.1 is affected too.

This caps microsoft-kiota-http<1.13.0 until a msgraph-core release reads request.extensions. The fix is in review in microsoftgraph/msgraph-sdk-python-core#1129, for microsoftgraph/msgraph-sdk-python-core#1128. The cap carries a comment linking both issues. uv.lock only changes the microsoft-kiota-http entry (1.14.0 → 1.12.3).

Verified with Kiota's real HttpxRequestAdapter against an httpx.MockTransport answering 302 then the file: microsoft-kiota-http 1.12.3 returns the bytes, while 1.14.0 and 1.14.1 return None. That holds with microsoft-kiota-abstractions 1.14.0, so only microsoft-kiota-http needs the cap. The provider's msgraph hook, operator and sensor tests pass on 1.12.3.

closes: #74089


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Opus 5.5

Generated-by: Claude Opus 5.5 following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

microsoft-kiota-http 1.13.0 moved the request options from request.options
to request.extensions. msgraph-core 1.5.1 (the latest release) still only
runs its AsyncGraphTransport middleware when request.options exists, so with
kiota-http 1.13 and later every request skips redirects, retries, URL
replacement and the user agent handler. A drive item download then gets
Graph's raw 302 and KiotaRequestAdapterHook returns None. Cap the version
until msgraph-core reads request.extensions.

closes: apache#74089

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@shahar1
shahar1 merged commit b62299c into apache:main Oct 2, 2026
75 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Microsoft Azure provider: Graph middleware (redirects, retries) silently skipped with microsoft-kiota-http >= 1.13

3 participants