Mapping States Reference
Last updated December 13, 2022
Table of Contents
A mapping state refers to the status of the sync operations that read from Salesforce and write to Heroku Postgres. You can check the state of any mapping via the Heroku Connect dashboard, CLI, or API.
Writes to Salesforce happen at the connection level and these operations aren’t reflected in the mapping states. See Writing Data to Salesforce with Heroku Connect for more info.
List of Mapping States
State Returned by the Connect API or CLI Plugin | Status in the Connect Dashboard | Description |
---|---|---|
DATA_SYNCED |
OK | All rows have been synced since the last poll. |
INITIAL |
Creating | Heroku Connect is creating a database table for a new mapping. |
RESYNC |
Loading new columns | Heroku Connect is querying and loading data following a mapping creation. This process also occurs after adding new fields to an existing mapping. |
RELOAD_TABLE |
Reloading | Connect is doing an initial load or a reload of your table. A reload occurs when manually triggered, or when a new mapping is created. |
SCHEMA_CHANGED |
Altering DB schema | Heroku Connect is altering the database schema following a mapping config change. If the mapping appears stuck in this state, see Heroku Connect mapping is stuck in ‘Altering DB schema’ status. |
POLLING_SF_CHANGES |
Polling SF | Connect is polling Salesforce for changes using SOAP API and writing them to Heroku Postgres. If there are more than 10,000 changes to sync, polling switches to Bulk API and the mapping goes into the POLLING_SF_BULK state. |
POLLING_SF_BULK |
Polling SF [bulk] | Connect is polling Salesforce for changes using the Bulk API. |
POLLING_SF_FOR_DELETES |
Polling SF [deletes] | Connect is polling Salesforce for deleted records. |
WAIT_BULK_LOAD |
Waiting for bulk job | Connect is waiting for a bulk job to complete in Salesforce. This state precedes LOADING_BULK_JOB . WAIT_BULK_LOAD is synonymous with WAIT_BULK_UPDATE except that it reflects bulk jobs related to the initial load or reload of data instead of subsequent updates. |
LOADING_BULK_JOB |
Loading [bulk] | Connect is retrieving data from completed bulk batches in Salesforce and loading the data into Heroku Postgres. LOADING_BULK_JOB is synonymous with APPLYING_BULK_UPDATE except that it reflects bulk jobs related to the initial load or reload of data instead of subsequent updates. |
RESOLVE_EXTERNAL_IDS |
Resolving External_IDs | Heroku Connect is querying Salesforce for External IDs to populate into Postgres. This operation occurs after applying a bulk load if the mapping includes an External ID relationship field. RESOLVE_EXTERNAL_IDS is synonymous with POLL_EXTERNAL_IDS except that it reflects bulk jobs related to the initial load or reload of data instead of subsequent updates. |
BULK_LOAD_ERROR |
Bulk load failed | This error occurs when there was a problem during the initial bulk load or reload of a mapping. Investigate the cause of the error. Go to the Logs tab in the Heroku Connect dashboard and filter for Error log lines. Bulk batch failures in Salesforce cause most bulk load errors in Heroku Connect. After identifying and correcting the cause of the error, reload the mapping. |
WAIT_BULK_UPDATE |
Waiting for bulk job | Connect is waiting for a bulk job to complete in Salesforce. This state precedes APPLYING_BULK_UPDATE . WAIT_BULK_UPDATE is synonymous with WAIT_BULK_LOAD except that it reflects bulk jobs related to updates instead of the initial load or reload of data. |
APPLYING_BULK_UPDATE |
Updating [bulk] | Connect is retrieving data from completed bulk batches in Salesforce and updating the data in Heroku Postgres. APPLYING_BULK_UPDATE is synonymous with LOADING_BULK_JOB except that it reflects bulk jobs related to updates instead of the initial load or reload of data. |
POLL_EXTERNAL_IDS |
Resolving External_IDs | Heroku Connect is querying Salesforce for External IDs to populate into Postgres. This operation occurs after applying a bulk update if the mapping includes an External ID relationship field. POLL_EXTERNAL_IDS is synonymous with RESOLVE_EXTERNAL_IDS except that it reflects bulk jobs related to updates instead of the initial load or reload of data. |
RECOVERY |
Re-enabling | Heroku Connect is recovering sync after a user reauthorized the connection. You can also manually trigger a recovery. |
ABORTED |
Task Aborted | You’ve manually aborted the mapping’s most recent operation. See States and Aborted Mapping Operations for more info. |
SYSTEM_ERROR |
Unexpected error | Heroku Connect encountered an unexpected error. Resume synchronization in the Heroku Connect dashboard. If the underlying problem persists, check your connection’s logs. If you can’t resolve the issue, contact Heroku Support. |
DB_UNAVAILABLE |
DB unavailable | Heroku Connect can’t connect to the database. Check that the database responds and is set as a config var for the app connected to Heroku Connect. Resume synchronization in the Heroku Connect dashboard. |
BAD_CONFIG |
Invalid config | The Salesforce configuration saved for this object no longer maps to the current Salesforce data model. See BAD_CONFIG for more info. |
SYNC_REMOVED |
Deleting | You deleted the mapping. |
INACTIVE_ORG |
Inactive org (sandbox refresh) | Your Salesforce org is inactive or you’ve refreshed your sandbox. Recreate the connection to an active org or refreshed sandbox. |
UNAUTHORIZED |
SF Auth failed | Authorization to Salesforce has expired. Reauthorize Heroku Connect to access your Salesforce data. |
States and Aborted Mapping Operations
If you abort a mapping while it is in any of the following states, it goes into the DATA_SYNCED
state. Normal sync operations resume with the next poll.
POLLING_SF_CHANGES
POLLING_SF_BULK
POLLING_SF_FOR_DELETES
WAIT_BULK_UPDATE
APPLYING_BULK_UPDATE
POLL_EXTERNAL_IDS
If you abort a mapping while it is in any of the following states, it remains in the ABORTED
state. You must reload the mapping to resume sync.
SCHEMA_CHANGED
RESYNC
WAIT_BULK_LOAD
LOADING_BULK_JOB
RESOLVE_EXTERNAL_IDS
RELOAD_TABLE