Sync Stuck on "Currently Processing"

Last updated: March 27, 2026

Symptoms

After triggering a sync (either the initial "Begin Sync from Virtuous" or a manual "Sync All"), the sync status shows "Currently Processing" for an extended period. It doesn't seem to be making progress or completing.

Root Cause

Virtuous's API has rate limits that can cause timeouts when syncing large datasets. When WeGive is pulling a lot of data from Virtuous at once, the API may stop responding before all the data has been transferred. This is a Virtuous-side limitation, not a WeGive issue.

This is most common during initial syncs for organizations with thousands of contacts or transactions.

How to Resolve

If This Is Your Initial Data Load

For large datasets, we recommend importing your historical data manually using WeGive's Import Tool instead of relying on the sync. Manual import gives you more control, lets you work in manageable batches, and avoids the API timeout issue entirely. See Migrating Your Historical Data for the full walkthrough.

If This Is an Ongoing Sync

  1. Go to Data > Integration Logs and check the most recent pull log entries. Look for timeout errors or entries that show partial progress.

  2. Wait for the current sync to finish or time out on its own. Do not trigger another sync while one is running.

  3. Once the current sync completes (or fails), trigger a Sync Since Last Update. The sync picks up where it left off, so each retry makes additional progress.

  4. Repeat as needed until the sync completes fully.

If Retries Aren't Making Progress

If you've retried several times and the sync doesn't seem to be getting further:

  • Check whether a specific data type is causing the timeout (look at which model is listed in the log entries)

  • Try syncing during off-peak hours when API traffic may be lower

  • Contact WeGive support for help diagnosing the specific bottleneck

Prevention

For organizations with large datasets, avoid using the full sync function for initial data loads. Use manual import instead and reserve the sync for ongoing incremental updates, which process much smaller amounts of data and rarely hit rate limits.