Why are some of my prospects shown as accepted but never received a follow-up message?

If a prospect's LinkedIn invitation was accepted but they never received the configured follow-up message, you're hitting one of three scenarios. We have specific recovery flows for each one — no prospects are permanently lost.

Scenario 1 — the LinkedIn account was disconnected at the moment the follow-up was supposed to fire. The campaign engine cannot send a LinkedIn message through a disconnected account (account safety always wins), so it parks the enrollment with linkedin_status='paused_account'. As soon as you reconnect the LinkedIn account, the platform's auto-resume sweep wakes the parked enrollments and the follow-up goes out on the next sending tick. No manual action is needed beyond reconnecting the account.

Scenario 2 — the follow-up step was a 'wait for acceptance' condition that already evaluated and routed the prospect down the false branch. This happens if the wait window expired before the acceptance webhook landed. The prospect is in the campaign's correct end state per how you configured the campaign — they aren't stranded, they were routed per the false branch you defined.

Scenario 3 — silent skip from a worker race condition or a campaign edit mid-flight. This is the genuinely-stuck pattern. Symptom: linkedin_accepted_at is set, status='completed', last_messaged_at is NULL, no error event. We ship a periodic post-acceptance enqueue helper (LL#233 enqueuePostAcceptanceNextStep) and an orphan-job-reconciler Sweep B that catches these rows and recreates the missing send_message job. On Apr 30, 2026 (Layer F10) we ran a one-shot backfill against a 422-row Vishwanath cohort — 28 rows were paused_account (Scenario 1, waiting on reconnect) and 389 were investigated for silent-skip; a fraction had genuinely been routed by an in-flight campaign edit (Scenario 2, no action needed) and the remainder were re-armed via the resume sweep.

What to do:

  1. Check the LinkedIn account status — if any account on the campaign shows 'Reconnect needed', click Reconnect, then wait 5-10 minutes for the auto-resume sweep.
  2. Check the campaign's step configuration — did your wait window expire? Did you edit the campaign mid-flight and remove a step? The campaign card shows the current configuration.
  3. If the prospect's enrollment shows linkedin_accepted_at set, status='completed', and last_messaged_at is NULL — and you HAD a configured follow-up — contact support at hello@warmysender.com with the prospect URL. We can manually re-arm the enrollment.

No Unipile API calls are made from the recovery flows — every gate (window clamp, per-account ramp, daily cap) is preserved on the rewake.

Back to all documentation | Contact support