All notable changes to this project are documented in this file. Release dates and yanked-release status are based on the azure-functions-durable package on PyPI.
- Added
instance_id_prefixfiltering toDurableOrchestrationClient.get_status_by. - Added
DurableFunctionsCompatibilityWarning, emitted at import time for applications using the legacyfunction.jsonprogramming model unlessrequirements.txtdemonstrably restrictsazure-functions-durablebelow version 2.
purge_instance_history_bynow raises a clearValueErrorwhen the requiredcreated_time_fromargument is omitted, instead of sending a request that the Durable extension rejects.
- Fixed
durableClientbinding validation on Python 3.14.
- Added
restartsupport toDurableOrchestrationClient. - Centralized serialization and deserialization of user payloads through
df_dumpsanddf_loads. When the installedazure-functionsSDK exposes these APIs, Durable Functions uses its type-validating codec; older SDK versions retain the legacy fallback. The wire format remains unchanged. - Added type-hint-driven validation for activity and sub-orchestrator results
by passing their expected return types to
df_loads. - Added return-type discovery for activities and sub-orchestrators registered with Python v2 programming model decorators.
- Added Python 3.13 and 3.14 support.
is_replayingis now determined from orchestration history.- Raised the minimum supported Python version to 3.10 and dropped Python 3.9.
- Updated dependencies to address known CVEs.
- Added orchestration version overrides to orchestration-start APIs.
- Propagated
FunctionInvocationIdthrough durable client HTTP operations for log correlation.
- Reused
aiohttp.ClientSessioninstances to reduce connection contention. - Renamed and expanded the OpenAI Agent SDK integration preview.
- Added the OpenAI Agent SDK integration preview for durable, stateful agents.
- Corrected the integration name and updated its documentation and samples.
- Published a release candidate of the OpenAI Agent SDK integration preview with an OpenAI compatibility note.
- Added the
versionproperty toDurableOrchestrationContext.
- Updated
aiohttpto 3.12.14.
- Fixed long timers when using Durable Task Scheduler or MSSQL storage providers.
- Added dependencies omitted from 1.3.0 so the package installs successfully.
- Corrected package metadata to consistently require Python 3.9 or later.
This release was yanked from PyPI because required dependencies were missing. Use 1.3.1 or later instead.
- Added support for long timers.
- Added helpers for unit testing orchestrators, entities, and durable clients.
- Added OpenTelemetry distributed tracing for orchestrations and entities.
- Raised the minimum supported Python version to 3.9.
- Updated
requestsandaiohttp.
- Fixed
task_anyreturning the same task multiple times in some cases. - Improved handling of exceptions without an error message.
- Improved
call_httpcontent handling. - Made
EntityIdequality compare entity names and keys.
- Fixed orchestrators returning JSON-serializable objects.
- Improved the error raised for invalid orchestration output.
- Added durable client APIs for suspending and resuming orchestrations.
- Fixed deserialization of history events whose result is
None.
- Added a compatibility layer for the new
azure-functionsSettings API, fixing the startup failure introduced in 1.2.7.
This release was yanked from PyPI because it could fail during application startup. Use 1.2.8 or later instead.
- Added support for the new
azure-functionsSettings API.
- Prevented already scheduled tasks from being added to the open-tasks list.
- Allowed repeated
task_anycalls over progressively smaller lists of already scheduled tasks.
- Added initial Durable Functions blueprint support.
- Added safer activity and sub-orchestrator invocation by function name for the Python v2 programming model.
- Improved the error message returned by the durable client
terminateAPI.
- Exported the Python v2 programming model APIs only when the installed Azure Functions worker supports them.
- Raised the minimum
azure-functionsdependency to 1.12.0 for Python v2 programming model support.
- Added preview support for the Azure Functions Python v2 programming model.
- Fixed a regression in the
is_replayingflag. - Allowed subtasks to be yielded multiple times.
- Excluded the
azurenamespace package from builds to support dependency isolation in the Azure Functions Python worker.
- Allowed timers in
task_allandtask_anycompound tasks to be cancelled safely. - Fixed orchestrations becoming stuck after the final failure of a retry API.
- Allowed entity operation timeouts to be caught by orchestrators.
- Allowed entity operation exceptions to be caught by orchestrators.
- Added missing timer task properties.
- Fixed an edge case in retry APIs after a task failure.
- Allowed
task_allto accept an empty task list.
- Replaced orchestration replay with a linear-time algorithm for improved performance at scale.
- Fixed string input serialization in
continue_as_new.
- Fixed nondeterminism errors when passing a fixed instance ID to a sub-orchestration.
- Added
read_entity_statetoDurableOrchestrationClient.
- Added support for the newer orchestration replay algorithm.
- Prevented tasks from being scheduled again when yielded more than once.
First stable release of Durable Functions for Python.
- Added
new_guidfor deterministic UUID generation. - Exported
OrchestrationRuntimeStatusfor status comparisons. - Added a warning for applications configured with Extension Bundles v1.
- Added Durable Entities support.
- Dropped support for Extension Bundles v1.
- Fixed serialization of
datetimeobjects. - Fixed intermittent
Nonevalues fromcurrent_utc_datetime.
- Added custom object serialization to
call_activity_with_retry.
- Fixed managed identity token source metadata for end-to-end authentication.
- Improved out-of-process error reporting so SDK errors are surfaced instead of a generic null-reference error.
- Added the experimental rewind API.
- Added enum-based orchestration runtime statuses.
- Added the
is_replayingflag.
- Fixed local
purge_instance_historyfailures. - Improved retry behavior to prevent nondeterminism after errors.
- Added sub-orchestrations.
- Added
create_http_management_payload. - Added type annotations and improved IntelliSense.
- Fixed
continue_as_newfailing to restart an orchestrator. - Fixed Boolean return-value serialization.
- Fixed timer matching for closely spaced timestamps.
- Added the
create_timerAPI.
- Added custom object serialization.
- Added custom orchestration status.
- Republished the third beta to correct the release pipeline.
- Validated the automated PyPI release pipeline.
- Removed incorrect
staticmethoddeclarations.
Initial public beta of Durable Functions for Python.
- Added function chaining, fan-out/fan-in, asynchronous HTTP APIs, and human interaction orchestration patterns.
- Added orchestration APIs for activities, retries, compound tasks, external events, HTTP calls, instance management, history queries, and purging.