Skip to content

HubSpot delivery is paused

An expired or revoked private-app token, a missing contact scope, or a rejected property stops HubSpot delivery. Here is how to fix and resume it.

Updated 3 min read Solo and above

HubSpot delivery pauses when the portal returns an error that another attempt cannot fix. The HubSpot card on Settings, then Integrations (/settings/integrations) shows a Paused badge and the reason, written either as HubSpot paused after INVALID_AUTHENTICATION. or as HubSpot paused after receiving HTTP 403.

The three causes, in order of likelihood

1. The token expired or was revoked

Authentication failures are terminal on the first occurrence. INVALID_AUTHENTICATION, UNAUTHORIZED, EXPIRED_AUTHENTICATION, invalid_token, oauth_invalid, and any HTTP 401 all pause the install immediately.

The usual causes are a private app that was deleted or rotated in HubSpot, or a portal that was disconnected on the HubSpot side. The fix is a fresh token, not a retry.

2. The token is missing a contact scope

A token that authenticates but cannot write contacts returns HTTP 403, which is also terminal. Embers upserts contacts, so the private app needs both crm.objects.contacts.read and crm.objects.contacts.write. Read-only tokens connect successfully and then pause on the first real lead.

3. A property was rejected, or the portal rate limited you

A rejected property value comes back as an HTTP 400 and is terminal, because sending the identical body again produces the identical rejection. Embers only writes firstname, lastname, jobtitle, company, website, and, on paid plans with a stored value, email and phone. Empty values are omitted rather than sent as blanks, so a 400 usually means a portal-side validation rule or a property type change.

Rate limits are different. A 429 is retried, along with timeouts and HubSpot server errors: the first attempt plus seven more, from 30 seconds out to roughly 6.3 days. Only if every attempt fails does the install pause, with HubSpot delivery retries were exhausted.

Fix and resume

  1. Create or repair the private app token

    In HubSpot, open your private app and confirm it has contact read and contact write scopes. Copy a current access token.

  2. Paste the token into Embers

    On the HubSpot card, paste the token into Private app token and save. Embers validates it against HubSpot before storing it encrypted, so a bad token is rejected at this point rather than at delivery time.

  3. Send a test

    Use the test control. It validates the token and does not create a HubSpot contact, so it is safe to run against a live portal.

  4. Resume

    Press Resume on the HubSpot card. Your event subscriptions and the master switch are unchanged by a pause, so there is nothing to reconfigure.

  5. Replay the deliveries you missed

    Open the delivery history and retry the rows in a failed or blocked state. Retries are idempotent: once a delivery has recorded a HubSpot contact id, replaying it updates that contact instead of creating a duplicate.

If duplicates appeared instead

Embers matches a person to a HubSpot contact by the stored link first, then by searching HubSpot for the email when one exists. A lead with no email on your plan or no email found cannot be matched that way, so a contact you already had under a different address can be created a second time. Merge them in HubSpot: the stored link points at whichever contact Embers wrote.

Still failing

  • The pause reason returns immediately after resuming: the new token still lacks a scope. Check both contact scopes, not just read.
  • The card says HubSpot is unavailable for OAuth: private-app connection still works, and it is the supported path.
  • You cannot see the Resume button: you are not an account administrator on this account.

Send the pause reason and the time to viraj@useembers.com if it does not clear.

Was this article helpful?

Still stuck?

Send us the article you were following and what happened. We answer from the same inbox that writes these pages.

Email support

to move to open esc to close