Until two weeks ago my integration was working. But for the last two weeks (since March 7th, 2026) I can't make it succeed no more.
For context:
- I'm also downloading many other tables.
- Sometimes we get 5xx but with retries is enough.
- For many other integrations (other clients) things are working fine.
The problem:
As I need to download all the Journals, I'm applying this strategy:
- I define a date range to
$filter: 30 days. - Within that range, I paginate with
$top=1000+$skipto fetch all the journals in the period. - Then I choose the previous period and repeat (moving backwards until there are no previous journals).
I could retrieve a couple of pages, then I started getting timeouts from my side after waiting 10 minutes for a request to finish. Even retrying 5 times. No success. Example request:
HTTP Request: GET my.acumatica.com/entity/Default/24.200.001/JournalTransaction?%24filter=LastModifiedDateTime+ge+datetimeoffset%272026-02-15T15%3A46%3A19.303Z%27+and+LastModifiedDateTime+lt+datetimeoffset%272026-03-17T15%3A46%3A19.303Z%27&%24expand=Details&%24custom=BatchModule.CuryViewState%2CBatchModule.AutoReverse%2CBatchModule.AutoReverseCopy%2CBatchModule.CreateTaxTrans%2CBatchModule.SkipTaxValidation%2CBatchModule.BatchType%2CBatchModule.OrigBatchNbr%2CBatchModule.ReverseCount%2CBatchModule.CuryDebitTotal%2CBatchModule.CuryCreditTotal%2CBatchModule.CuryControlTotal%2CBatchModule.UsrBZStoreCode%2CBatchModule.UsrBZJournalEntryID%2CBatchModule.UsrBZNumber%2CBatchModule.NoteText%2CBatchModule.NoteID&%24top=1000&%24skip=2000
Then we grew that timeout period, to wait for the server a little longer, until it responded with 500:
HTTP Request: GET my.acumatica.com/entity/Default/24.200.001/JournalTransaction?%24filter=LastModifiedDateTime+ge+datetimeoffset%272026-02-18T06%3A48%3A41.342Z%27+and+LastModifiedDateTime+lt+datetimeoffset%272026-03-20T06%3A48%3A41.342Z%27&%24expand=Details&%24custom=BatchModule.CuryViewState%2CBatchModule.AutoReverse%2CBatchModule.AutoReverseCopy%2CBatchModule.CreateTaxTrans%2CBatchModule.SkipTaxValidation%2CBatchModule.BatchType%2CBatchModule.OrigBatchNbr%2CBatchModule.ReverseCount%2CBatchModule.CuryDebitTotal%2CBatchModule.CuryCreditTotal%2CBatchModule.CuryControlTotal%2CBatchModule.UsrBZStoreCode%2CBatchModule.UsrBZJournalEntryID%2CBatchModule.UsrBZNumber%2CBatchModule.NoteText%2CBatchModule.NoteID&%24top=1000&%24skip=3000 "HTTP/1.1 500 Internal Server Error"
This error:
500 - An error has occurred. Operation Cancelled System.OperationCanceledException at PX.Data.PXCancellationToken.CheckCancellation()
at PX.Data.PXAccess.GetConnectionString()
at PX.Data.PXDatabase.get_Provider()
at PX.Data.BQL.PXDatabaseRecordStatusHelper.HasRecordStatusSupport(PXCache cache, Type table, String& recordStatusFieldName)
at PX.Data.PXGraph.EnsureIfArchived()
at PX.Data.PXGraph.Unload()
at PX.Api.ContractBased.EntityExportContextBuilder.Dispose()
at PX.Api.ContractBased.EntityService.<GetListAsyncFromEnumerable>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at PX.Api.ContractBased.WebApi.Controllers.EntityController.<GetList>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at lambda_method(Closure , Object )
at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.AwaitableObjectResultExecutor.<Execute>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextExceptionFilterAsync>d__24.MoveNext()
I don't really know what to do...