Skip to content

Releases: Azure/azure-functions-durable-extension

WebJobs.Extensions.DurableTask v3.12.2

17 Mar 21:23
ca10150

Choose a tag to compare

What's Changed

Full Changelog: v3.12.1...v3.12.2

Worker.Extensions.DurableTask v1.16.2

17 Mar 21:23
ca10150

Choose a tag to compare

What's Changed

Full Changelog: v1.16.1-worker-extension...v1.16.2-worker-extension

WebJobs.Extensions.DurableTask v3.12.1

13 Mar 20:01
e986657

Choose a tag to compare

Worker.Extensions.DurableTask v1.16.1

13 Mar 20:02
e986657

Choose a tag to compare

WebJobs.Extensions.DurableTask v3.12.0

05 Mar 18:29
df7fc3c

Choose a tag to compare

What's Changed

NOTICE OF BREAKING CHANGE

This release adds support for dedupe statuses in isolated. As part of this change, if an orchestration in a non-terminal state exists with the same instance ID as passed to the creation request, and its status is not in the dedupe statuses of the request, then the orchestration will first be terminated before a new one is created. Previously, the creation request would just go through without any termination. Note that in this repo, the DurableTaskOptions.OverridableExistingInstanceStates setting is used in all creation paths (the TaskHubGrpcServer, HttpApiHandler, and the DurableClient) as a base for determining the dedupe statuses, in combination with any user-provided dedupe statuses. In particular, the default value for this setting is OverridableStates.NonRunningStates, so unless this is manually changed to OverridableStates.AnyState, the creation request will throw an OrchestrationAlreadyExistsException (which may be wrapped by the various callers) if an orchestration in a non-terminal state is found with the same instance ID. This behavior remains unchanged by this release.

Similarly, previously the DurableClient.RestartAsync API would throw an InvalidOperationException if restartWithNewInstanceId is false and the existing orchestration is in a non-terminal state. Now, if the DurableTaskOptions.OverridableExistingInstanceStates setting is set to OverridableStates.AnyState, the restart call will first terminate the existing orchestration before creating a new one. The default value for this setting, if not changed by the user, is OverridableStates.NonRunningStates, in which case the DurableClient.RestartAsync API throws an OrchestrationAlreadyExistsException if the orchestration is in a non-terminal state. This means that the default behavior still results in an exception being thrown if the orchestration is in a non-terminal state and restartWithNewInstanceId is false - the exception has changed from InvalidOperationException to OrchestrationAlreadyExistsException, which may be wrapped by the various callers (namely the TaskHubGrpcServer and HttpApiHandler).

Full Changelog: v3.11.0...v3.12.0

Worker.Extensions.DurableTask v1.16.0

05 Mar 18:30
df7fc3c

Choose a tag to compare

What's Changed

NOTICE OF BREAKING CHANGE

This release adds support for dedupe statuses in isolated. As part of this change, if an orchestration in a non-terminal state exists with the same instance ID as passed to the creation request, and its status is not in the dedupe statuses of the request, then the orchestration will first be terminated before a new one is created. Previously, the creation request would just go through without any termination. Note that in this repo, the DurableTaskOptions.OverridableExistingInstanceStates setting is used in all creation paths (the TaskHubGrpcServer, HttpApiHandler, and the DurableClient) as a base for determining the dedupe statuses, in combination with any user-provided dedupe statuses. In particular, the default value for this setting is OverridableStates.NonRunningStates, so unless this is manually changed to OverridableStates.AnyState, the creation request will throw an OrchestrationAlreadyExistsException (which may be wrapped by the various callers) if an orchestration in a non-terminal state is found with the same instance ID. This behavior remains unchanged by this release.

Similarly, previously the DurableClient.RestartAsync API would throw an InvalidOperationException if restartWithNewInstanceId is false and the existing orchestration is in a non-terminal state. Now, if the DurableTaskOptions.OverridableExistingInstanceStates setting is set to OverridableStates.AnyState, the restart call will first terminate the existing orchestration before creating a new one. The default value for this setting, if not changed by the user, is OverridableStates.NonRunningStates, in which case the DurableClient.RestartAsync API throws an OrchestrationAlreadyExistsException if the orchestration is in a non-terminal state. This means that the default behavior still results in an exception being thrown if the orchestration is in a non-terminal state and restartWithNewInstanceId is false - the exception has changed from InvalidOperationException to OrchestrationAlreadyExistsException, which may be wrapped by the various callers (namely the TaskHubGrpcServer and HttpApiHandler).

Full Changelog: v1.15.0-worker-extension...v1.16.0-worker-extension

WebJobs.Extensions.DurableTask v3.11.0

02 Mar 17:42
ad1a8ee

Choose a tag to compare

What's Changed

  • Fix ArgumentNullException when ControlQueueLengths is null in Durable… by @alrod in #3339
  • Fix thread-safety race condition in EnsureTaskHubWorker by @torosent in #3351
  • Update dependencies to fix CVE issues by @bachuv in #3350
  • Update projects to target .NET 10.0 alongside .NET 8.0 by @bachuv in #3333
  • Add InvalidOperationException to platform error checks in OutOfProcMiddleware by @bachuv in #3355
  • Bump dotnet-sdk from 10.0.102 to 10.0.103 by @dependabot[bot] in #3358

Full Changelog: v3.10.1...v3.11.0

Worker.Extensions.DurableTask v1.15.0

02 Mar 17:42
ad1a8ee

Choose a tag to compare

What's Changed

  • Update dependencies to fix CVE issues by @bachuv in #3350
  • Update projects to target .NET 10.0 alongside .NET 8.0 by @bachuv in #3333
  • Add InvalidOperationException to platform error checks in OutOfProcMiddleware by @bachuv in #3355
  • Bump dotnet-sdk from 10.0.102 to 10.0.103 by @dependabot[bot] in #3358

Note: If you see a startup error that contains TypeLoadException: Microsoft.ApplicationInsights (Version 3.0.0.1), this is caused by mismatched Application Insights package versions. Workarounds:

  • Align all Application Insights packages to compatible versions.
  • If you are using Microsoft.ApplicationInsights.WorkerService to v3, then remove the call to ConfigureFunctionsApplicationInsights() from Program.cs (if possible)
  • Keep all Application Insights dependencies on compatible v2 versions.

This issue is not related to DurableTask or .NET version changes.

Full Changelog: v1.14.1-worker-extension...v1.15.0-worker-extension

WebJobs.Extensions.DurableTask v3.10.1

11 Feb 20:44
9bafde5

Choose a tag to compare

https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.10.1

What's Changed

  • Add FunctionInvocationId correlation for client operations by @cgillum in #3326
  • Support Tags when RestartInstance by @nytian in #3331

Full Changelog: v3.10.0...v3.10.1

Worker.Extensions.DurableTask v1.14.1

11 Feb 20:45
9bafde5

Choose a tag to compare

https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.14.1

What's Changed

  • Add FunctionInvocationId correlation for client operations by @cgillum in #3326
  • Support Tags when RestartInstance by @nytian in #3331

Full Changelog: v1.14.0-worker-extension...v1.14.1-worker-extension