Skip to content

Regression after upgrading Microsoft.Azure.DurableTask.Core 3.2.0 → 3.6.0 (TaskHub initialization errors + unexpected 404s against Azure Table Storage) #1287

@ohadtayl

Description

@ohadtayl

Hi team,
After upgrading Microsoft.Azure.DurableTask.Core and DurableTask.AzureStorage from 3.2.0 to 3.6.0, we started seeing a large spike in storage-related failures coming from the Azure Storage provider. These errors begin immediately after deployment and disappear completely when rolling back to 3.2.0.

Right after the upgrade, orchestration workers start throwing repeated errors while trying to initialize or process work for the TaskHub.
Here is an example of one of the failures:

An unexpected failure occurred while processing instance 'mgmt-cme2e1204233657cluster': DurableTask.AzureStorage.Storage.DurableTaskStorageException: An error occurred while communicating with Azure Storage ---> Azure.RequestFailedException: The specified resource does not exist.
RequestId:670a9fd6-a002-0052-4bac-65cb63000000
Time:2025-12-05T05:58:29.0299754Z
Status: 404 (Not Found)
ErrorCode: ResourceNotFound

Content:
{"odata.error":{"code":"ResourceNotFound","message":{"lang":"en-US","value":"The specified resource does not exist.\nRequestId:670a9fd6-a002-0052-4bac-65cb63000000\nTime:2025-12-05T05:58:29.0299754Z"}}}

Headers:
Transfer-Encoding: chunked
x-ms-request-id: 670a9fd6-a002-0052-4bac-65cb63000000
x-ms-client-request-id: 87682197-128c-412b-91d5-045f83cfc17d
x-ms-version: REDACTED
X-Content-Type-Options: REDACTED
Cache-Control: no-cache
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
Date: Fri, 05 Dec 2025 05:58:28 GMT

at Azure.Data.Tables.TableRestClient.d__33.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Azure.Data.Tables.TableClient.d__511.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DurableTask.AzureStorage.Storage.ClientResponseExtensions.<DecorateFailure>d__1.MoveNext() in /_/src/DurableTask.AzureStorage/Storage/ClientResponseExtensions.cs:line 30 --- End of inner exception stack trace --- at DurableTask.AzureStorage.Storage.ClientResponseExtensions.<DecorateFailure>d__1.MoveNext() in /_/src/DurableTask.AzureStorage/Storage/ClientResponseExtensions.cs:line 34 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DurableTask.AzureStorage.Storage.Table.<MergeEntityAsync>d__161.MoveNext() in //src/DurableTask.AzureStorage/Storage/Table.cs:line 97
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DurableTask.AzureStorage.Tracking.AzureTableTrackingStore.d__52.MoveNext() in /
/src/DurableTask.AzureStorage/Tracking/AzureTableTrackingStore.cs:line 815
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DurableTask.AzureStorage.AzureStorageOrchestrationService.d__89.MoveNext() in //src/DurableTask.AzureStorage/AzureStorageOrchestrationService.cs:line 1083
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DurableTask.AzureStorage.AzureStorageOrchestrationService.d__83.MoveNext() in /
/src/DurableTask.AzureStorage/AzureStorageOrchestrationService.cs:line 796

Impact-
TaskHub workers get stuck retrying.
Queue length (work items) grows quickly.
Latency spikes.
Some orchestrations never get picked up.
Rolling back to 3.2.0 immediately resolves the issue.

Image

Were there any breaking changes introduced in 3.6.0 that affect the Azure Storage provider?
Did the table schema or required entity format change?
Are there new configuration flags or capabilities we need to enable?
Is this a known issue or regression?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions