Skip Navigation
Show nav
Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Visit the Heroku Blog

    Find news and updates from Heroku in the blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Developer Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Troubleshooting Node.js Apps
      • Working with Node.js
      • Node.js Behavior in Heroku
    • Ruby
      • Rails Support
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • Working with PHP
      • PHP Behavior in Heroku
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • Inference Essentials
      • AI Models
    • Vector Database
    • Model Context Protocol
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Heroku Enterprise
  • Heroku Connect (Salesforce sync)
  • Heroku Connect Reference
  • Mapping States Reference

Mapping States Reference

English — 日本語に切り替える

Last updated November 11, 2024

Table of Contents

  • List of Mapping States
  • States and Aborted Mapping Operations

Heroku Connect syncs data from Salesforce to Heroku Postgres independently per mapping. The mapping cycles through various states during this process. 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

Keep reading

  • Heroku Connect Reference

Feedback

Log in to submit feedback.

Using Custom Triggers with Heroku Connect The Heroku Connect CLI Plugin

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices