Purge tombstone fails to purge via sdk in Couchbase Capella

Purging the tombstone via .netsdk is throwing exceptions. It throws timeout exception after elapsing the configured 100 seconds. Same Purge tombstone code used to work fine with couchbase before the migration.

Error attempting to purge SG documents!The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.|System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.
—> System.TimeoutException: A task was canceled.
—> System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter1.WaitForConnectionAsync(Boolean async, CancellationToken requestCancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at Datadog.Trace.ClrProfiler.CallTarget.Handlers.Continuations.TaskContinuationGenerator4.SyncCallbackHandler.ContinuationAction(Task1 previousTask, TTarget target, CallTargetState state)
at Datadog.Trace.ClrProfiler.CallTarget.Handlers.Continuations.TaskContinuationGenerator4.SyncCallbackHandler.ContinuationAction(Task1 previousTask, TTarget target, CallTargetState state)
at Datadog.Trace.ClrProfiler.CallTarget.Handlers.Continuations.TaskContinuationGenerator4.SyncCallbackHandler.ContinuationAction(Task1 previousTask, TTarget target, CallTargetState state)
at Datadog.Trace.ClrProfiler.CallTarget.Handlers.Continuations.TaskContinuationGenerator4.SyncCallbackHandler.ContinuationAction(Task1 previousTask, TTarget target, CallTargetState state)
at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.g__Core|5_0(HttpRequestMessage request, CancellationToken cancellationToken)
at Polly.CircuitBreaker.AsyncCircuitBreakerEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, ExceptionPredicates shouldHandleExceptionPredicates, ResultPredicates1 shouldHandleResultPredicates, ICircuitController1 breakerController) at Polly.AsyncPolicy1.ExecuteAsync(Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext) at Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates1 shouldRetryResultPredicates, Func5 onRetryAsync, Int32 permittedRetryCount, IEnumerable1 sleepDurationsEnumerable, Func4 sleepDurationProvider, Boolean continueOnCapturedContext)
at Polly.AsyncPolicy1.ExecuteAsync(Func3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
at Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.g__Core|5_0(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
— End of inner exception stack trace —
— End of inner exception stack trace —
at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at com.embecta.common.cloud.Services.AdminDocStoreRepositoryService.AdminApiPostAsync(String requestUri, String errorMessage, String telemetryMessage, Object payload)
2024-10-28 13:46:34.5081|ERROR|com.embecta.content.service.core.Services.ContentSyncService| Tombstone Purge unsuccessful for current batch

Purge works fine via RestAPI call, but not via .netsdk.
Payload is in the expected format… {
“evt…a2fbe0b1-f627-488f-a49e-c41378e2e751”: [
"
],
“evt…e498399d-b0fd-4b81-ab37-56e12b12f38a”: [
"

]
}
Admin API client is created using appservice endpoint and used credentials configured for the appservice
Any clue what is missing?

Same Purge tombstone code used to work fine with couchbase before the migration.

What migration? I don’t see any couchbase in the stack trace, only com.embecta.content.service.core.Services.ContentSyncService. Can you show how the call is being made? The requestUri, the payload being sent (escape with back-ticks please), and the http response?