Fix HubSpot delivery when it is paused
A rejected or under-scoped token, five refused contacts in a row, or exhausted retries pauses HubSpot delivery. How to read the reason and resume.
HubSpot delivery pauses when the portal returns an error that another attempt cannot fix. The HubSpot page under Integrations in the sidebar (/integrations/hubspot) then reads “Delivery to HubSpot is paused” at the top, and Needs attention under it shows the reason with Resume.
Read the pause reason
| Reason | What it means |
|---|---|
HubSpot paused after INVALID_AUTHENTICATION. | HubSpot answered 401 or 403. The token was revoked or rotated, or it lacks a contact scope |
HubSpot paused after 5 contacts in a row were rejected (last: VALIDATION_ERROR). | Five leads in a row were refused for their own values, with none synced in between. Usually a portal rule that every lead fails |
HubSpot paused after receiving HTTP 404. (or another 4xx) | HubSpot refused the request for a reason other than one contact’s values |
HubSpot delivery retries were exhausted. | Rate limits, timeouts, or HubSpot outages that lasted through every retry |
Authentication errors pause on the first occurrence, because a retry sends the same token. A request HubSpot refuses outright pauses on the first occurrence too, because sending the identical body again produces the identical rejection.
One contact refused for its own values does not pause anything. A 400 VALIDATION_ERROR (an invalid email, a value a portal rule rejects), a 409 CONFLICT (the contact already exists), or a lead with no properties to write fails that delivery only, and Embers sends the next lead. Only five of those in a row pause the install. One synced contact resets the count. Resuming HubSpot, switching delivery back on, or reconnecting starts the count from zero, so HubSpot pauses again only after five more refused contacts in a row.
If a contact Embers synced is deleted or merged in HubSpot, Embers creates it again (or matches an existing contact by email) on the next update and keeps syncing. HubSpot is not paused. If HubSpot still cannot find the contact, only that lead’s delivery fails, and you can choose Retry on its row on the Activity card.
Rate limits (429), timeouts, and 5xx errors are retried instead: the first attempt plus seven more, from 30 seconds out to about 6.3 days, the same schedule as webhook retries.
The token lacks a scope
Embers creates and updates contacts, so the private app needs both crm.objects.contacts.read and crm.objects.contacts.write. Connecting only checks that the token can read the portal, so a read-only token connects and then pauses on the first real lead. HubSpot reports a missing scope as a 403, which is why it shows as INVALID_AUTHENTICATION rather than a scope error.
A property was refused
Embers writes only firstname, lastname, jobtitle, company, and website, plus email and phone when a paid plan has them stored. Empty values are left out rather than sent as blanks. Five refused contacts in a row therefore usually point at a validation rule or a changed property type in your portal. The full field list is in what Embers writes to HubSpot.
Fix and resume
-
Repair the private app in HubSpot
Open the private app and confirm it has contact read and contact write scopes. Copy a current access token.
-
Disconnect, then paste the new token
The connected page has no token field, so open the … menu beside the status, choose Disconnect HubSpot and confirm, then paste the token into Private app token on the Setup card and choose Save token. Embers checks it against HubSpot before storing it. Saving keeps your event choices and delivery rules and clears the pause, so there is no separate resume.
-
Send a test
Send test, beside the status at the top of the page, checks the token without creating a HubSpot contact, so it is safe against a live portal.
-
Fix the cause
Relax the portal rule or property type that refused the value, or check HubSpot’s status page for an outage.
-
Choose Resume
Resume appears beside the pause under Needs attention while delivery is paused. Your event choices and rules are unchanged by a pause.
Recover the leads you missed
Leads that qualified while HubSpot was paused were kept as Blocked, not sent. After you resume, choose Retry on a blocked row on the Activity card, or select the leads on the leads list and send them to HubSpot. A pushed lead that already has a linked HubSpot contact is skipped as already synced to HubSpot contact unless you tick ignore rules, in which case the existing contact is updated rather than duplicated.
Troubleshooting
- The pause returns right after reconnecting. The new token still lacks a scope. Check both contact scopes, not only read.
- Save token says HubSpot rejected the token. The token is wrong or revoked:
HubSpot rejected that private app token. Check crm.objects.contacts read and write scopes.Copy it again from the private app. - Duplicate contacts appeared. A lead without a stored email cannot be matched to an existing contact by email. See how duplicates are avoided, then merge them in HubSpot.
- Resume is missing. Delivery is not paused, or you are not an account administrator.
Send the pause reason and the time to viraj@useembers.com if it does not clear. Slack follows the same pause rules: see Slack delivery is paused.
Related
Frequently asked questions
- Why did HubSpot pause when the token connected fine?
- Connecting only checks that the token can read the portal. A token without the contacts write scope connects, then pauses on the first real lead with INVALID_AUTHENTICATION.
- Do I lose my HubSpot settings if I reconnect with a new token?
- No. Saving a new token keeps your event choices and delivery rules, and it clears the pause at the same time.
- Does a HubSpot rate limit pause delivery?
- No. Rate limits, timeouts, and HubSpot server errors are retried up to seven times over about 6.3 days. Only when every attempt fails does delivery pause.
Was this article helpful?
What went wrong?
Thank you. We read every answer.
Still stuck?
Send us the article you were following and what happened. We answer from the same inbox that writes these pages.