This package was restarted after a failure (as seen in https://support.skyvia.com/thread/salesforce-large-table-synchronization-failure-with-random-errors/). It has been running now for ~24 hours, and 0 records have been processed.
I have no other sync packages running/blocking it, and the database is fully up/accessible.
What is causing this hangup?
Salesforce synchronization package has been running for 24 hours w/ no records have been processed
- Last Post 20 March 2019
- Topic Is Solved
Both packages are cancelled for now.
In both cases, packages have been performing for a long time because of numerous errors on all records (for example, more than 500k failed records for #64794): "can not insert null into Id".
The error occurs on inseting data to PostgreSQL tables. The issue is related to the fact that the primary key columns (Id) of your PostgreSQL tables are not autogenerated - the main requirement for synchronizing database data is that the primary key columns of the database tables must be autogenerated.
When you click Cancel, the current task execution continues. After the completion of the current task, the package stops. If there are more tasks in the package, they are not executed. If your package contains only one task, the cancel operation takes as much time as it is required for the package completion.
I updated my tables, it was successfully running, showing that records were being synchronized....and then it failed with:
startDate cannot be more than 30 days ago
Package #64613, run #1884047 (Same error as my other ticket - https://support.skyvia.com/thread/salesforce-large-table-synchronization-failure-with-random-errors/)
As a note, this sandbox was refreshed a week ago. That said, 6 other tables were successfully synchronized since w/ an external (Postgres) database, so it's not the enviroment being newer than 30 days.
This is an urgent issue, please advise on how I can get this table synchronizing otherwise we will have to look at another solution other than Skyvia. Thanks.
Please keep me updated, as this is urgent. Thank you for looking into it.
It sounds like this is similar to the issue reported here - https://developer.salesforce.com/forums/?id=906F00000008pisIAA
Is it possible that Skyvia does the 30 days past query based on when the sync job starts? My sync job runs for longer than 24 hours, so that'd mean it'd query back ~31 days. Which would break it.
When running the synchronization, Skyvia queries deleted data from Salesforce using the getDeleted() method. We pass the date and time of the previous synchronization to Salesforce to get data, deleted since this time. Salesforce allows to get the deleted data not older than 30 days from current date. So, in case there were no previous synchronizations in this package or its LastSyncTime parameter is reset, we use the value of 30 days before the current date.
But once the date changes (because it runs more than 24 hours), is your startDate adjusted? If it is over 30 days, this error will result, as this runs more than 1 day/24 hours.
Proven by this and my other synchronization package (https://app.skyvia.com/#/packages/64612), Skyvia cannot handle a task that runs for more than 24 hours.
This is a high priority case for us, can you fix/update your date calculations and get packages that run more than 24 hours working? Please let us know when work begins on this, thanks.