Why isn't my LinkedIn campaign sending?
If your LinkedIn campaign isn't sending — or your dashboard is showing numbers that don't match your LinkedIn inbox — there are four common patterns we know about, and as of May 1, 2026 every one of them has shipped fixes. This page walks through each pattern, why it happens, and what to do.
- Why am I seeing 0 invites sent today even though the campaign is running?
Symptom: your LinkedIn → Accounts page shows 'invites sent today: 80/80' (or a similar capped number), every new send attempt errors with 'daily limit reached', but only 7-12 sends actually completed today.
Why (May 1, 2026): the daily counter that gates your rate limits had drifted upward and stayed there. The routine that is supposed to correct drift could only ever move the counter up, never down, so once a bad value was recorded it stuck. Net: the counter said 142, the reality was 12, and the rate-limit gate blocked every new send.
Fix: the correction routine now recalculates the day's figure from what actually completed plus what is currently in flight, and ignores the previously stored value entirely. Sends still increase the counter live as they happen; the correction routine is purely a repair pass. A one-off repair ran on May 1 across all active accounts and brought 41 of 51 back down to reality — for example 142 to 12, 87 to 9, and 73 to 7.
What to do: nothing. The repair has already run. If you still see the symptom, hard-refresh your dashboard (there is a 60-second cache) and check the per-step counter on the campaign card — that one is always accurate. If they still disagree after 24 hours, contact support at [email protected].
- Why does my dashboard show '0% accept' when I have replies?
Symptom: a campaign showed 'Acceptance rate = 18%' with 47 accepted prospects listed — but the LinkedIn inbox and the campaign activity log showed only 31 real accepts. The gap of 16 was confusing.
Why (May 1, 2026): those 16 were phantom accepts that had already been reverted. They came from an acceptance being applied across every campaign a prospect was enrolled in, including campaigns that had never sent that person an invite. We deliberately don't delete the original activity records, so the statistics job was still counting the reverted acceptances alongside the real ones.
Fix: the statistics job now ignores any acceptance that was subsequently reverted. Corrected figures were back-filled on May 1 — for example 47 down to 31, 89 down to 79, and 1,208 down to 1,058 — and any further corrections appear within an hour of the next refresh.
What to do: hard-refresh your dashboard. Cross-check ground-truth against your LinkedIn inbox (always correct) and the campaign-card per-step counter (always correct). If the gap persists past 1 hour, contact support.
- Why does my follow-up message never fire after acceptance?
Symptom: a campaign where step 1 (the invite) went out fine and the prospect accepted — visible both in LinkedIn and in the campaign activity log — but step 2 (the message) never fired. Behind the scenes, 28 message sends were cycling endlessly between failing and being recreated.
Why (May 1, 2026): step 2's message template contained `{{company}` — one closing brace instead of two. The typo was only caught at send time, so each attempt failed, was recreated, and failed again on the same typo, indefinitely. A fix on Apr 30 stopped those attempts piling up, but the typo itself was still sitting in the campaign with nothing in the interface telling you what to fix.
Fix: as of May 1, 2026, template syntax errors are caught the moment you save. Every template-bearing field — invite note, message template, InMail subject + body, comment template, A/B variants — is validated before the campaign is saved. If you have a typo, you'll see a soft amber Alert at the top of the editor with the message 'Step N has a template syntax error', a red border on the offending field, and a caret marker pointing at the typo. The new 'Validate' button on every step gives instant client-side feedback without a save round-trip.
Common typo shapes:
- `{{company}` → fix to `{{company}}` (missing one closing brace)
- `{firstName}}` → fix to `{{firstName}}` (missing one opening brace)
- `{ {firstName}}` → fix to `{{firstName}}` (no space between the braces)
- `{{firstName | default: 'there'}` → fix to `{{firstName | default: 'there'}}` (missing one closing brace)
What to do: open the affected campaign in the editor. The validator banner will tell you which step has the typo. Click 'Validate' on that step to highlight the exact position. Fix the typo, click Save, click Resume on the campaign card. Affected prospects retry on the next tick. No prospects are lost — they simply wait until the template is fixed. No LinkedIn action was ever attempted on the failed sends, because the typo is caught before we reach LinkedIn, so retrying costs you nothing against your limits.
- Why did the Reconnect button fail with an internal error?
Symptom: several customers reported the Reconnect button failing with a confusing internal error message. Every reconnect attempt aborted without telling them anything useful.
Why (May 1, 2026): a handful of code paths were changing the account's status without also recording that change in your account history. A safety rule in our database requires the two to happen together, so it correctly rejected the change — but all you saw was the raw error.
Fix: every one of those paths now records the change alongside the status flip, so the safety rule passes and the reconnect button works. We added an automated build check so the same mistake can't be reintroduced, and 14 accounts that had been left stuck mid-connection were repaired.
What to do: try reconnecting again. The button now works first time. If you still see an error, contact support immediately — we want to find and fix any remaining path.
FAQ
Q: Will my counter ever drift again? A: The correction routine now recalculates the day's figure from scratch every 30 minutes, so a bad value can no longer stick. We also alert ourselves whenever a counter claims sends have happened while nothing has actually completed for more than two hours. Drift is detected within hours and repaired automatically.
Q: Will my prospects be lost if my template has a syntax error? A: No. Affected prospects simply wait for the template to be fixed, and we keep a record of why each one paused. They retry on the next campaign tick after you fix the template and click Resume. No prospects are dropped, no quota is consumed, and no LinkedIn actions are wasted.
Q: How do I know if my campaign was affected by the scheduling lag? A: Look for any prospect that has been sitting ready to be invited or messaged for more than five minutes past its scheduled time. The May 1 repair rescheduled 1,247 stuck prospects across 23 workspaces. If you still have any, contact support and we'll reschedule them for you.
Q: Why does the Validate button matter if templates are checked on save anyway? A: Defense in depth, plus a better editing experience. The check on save is the safety gate that actually protects you; the Validate button gives you instant feedback while you're still editing, so you can fix typos before saving. Both use the same rules — a template can never pass Validate and then be rejected on save.
Q: Will any of these fixes affect my LinkedIn account safety? A: No. Every fix on this page works on data we already hold — no extra LinkedIn calls, no rate-limit risk, no account flags. The engine respects per-account daily and weekly limits, sending windows, and timezone exactly as you configured them. The counter fix actually improves safety by making sure the rate-limit gate isn't blocked by a stale inflated value, and the reconnect fix means every status change on your account is properly recorded. We never auto-shortcut a step, never auto-skip a wait, and never burn prospects to 'help' you.
- Why is my prospect's next-step scheduled days into the future?
Symptom: you open a prospect and see their next step scheduled one, two, or three days into the future — even though nothing has been sent to them yet and the campaign is running normally. One campaign had this on 89 prospects after the May 1 counter repair: the counter read 12 (correct), the cap was 80 (plenty of headroom), but the prospects were scheduled for May 2-4 and the campaign sat idle.
Why (May 1, 2026): while the daily counter was inflated, every false 'daily limit reached' trip pushed the affected prospects a full day forward. Several false trips on the same day compounded, so prospects that had never been contacted ended up scheduled three sending days out. Repairing the counter fixed the gate, but those deferred dates had already been written onto the prospects.
Fix: a one-off repair pulled those dates back to the next valid sending window for any prospect that hadn't been contacted yet and whose account had just had its counter corrected. The prospect and its queued action are updated together, so the two stay aligned. We ran this for you — nothing is needed on your side.
What to do: nothing. The repair covers every active LinkedIn account whose counter was corrected in the previous 24 hours. If you still see uncontacted prospects scheduled more than a day out, contact support — that would be an edge case the sweep missed. Going forward, a false 'limit reached' no longer defers a prospect by a whole day; it simply retries five minutes later.
- Why does my dashboard show acceptances but my campaign isn't progressing?
Symptom: a campaign where 31 prospects accepted the invite — confirmed in the LinkedIn inbox — but WarmySender never received the acceptance signals. The dashboard showed 0 accepts and the campaign never moved past its 'wait for acceptance' step. The account had been reconnected on Apr 28 after a routine 30-day session rotation.
Why (May 1, 2026): the real-time acceptance notifications are tied to the LinkedIn session that was live when the account was registered for them. When LinkedIn rotates the session and you reconnect, the old registration is invalidated. Our reconnect flow was correctly marking the account as connected, but it wasn't re-registering the account for those notifications. So after every reconnect, acceptance signals stopped reaching us until the next platform-wide refresh, which at the time ran weekly. The acceptances were happening; they just never made it across.
Fix: reconnecting now re-registers the account for acceptance notifications as soon as the account is marked connected. If that re-registration fails, the reconnect still succeeds and we raise an internal alert so it can be repaired by hand. A daily audit also compares the registrations we hold against the accounts that should have them, and re-registers anything missing.
What to do: if you've reconnected your account at any point in the last 30 days and your dashboard shows fewer accepts than your LinkedIn inbox, click Reconnect once more (the new flow registers correctly), then give it five minutes for the audit to back-fill any acceptances the polling fallback picked up. If you still see acceptance gaps after that, contact support with the affected campaign names and we'll replay the missed signals for you. No prospects are lost — the acceptance signals are stored on our integration partner's side and can be replayed on demand.
- Why does 'last activity' show an old date even though my campaign is sending?
Symptom: an account tile showed 'last activity 47 minutes ago' while the campaign was actively sending — six sends had completed on that account in the previous ten minutes. The 'last activity' pill was lying.
Why (May 1, 2026): the tile was reading the time of the last session health check rather than the time of the last real send. Health checks run every few minutes during business hours and less often outside them, so the tile reflected authentication health, not sending activity.
Fix: the tile now reads the time of your most recent completed send on that account. If nothing has completed in the last 7 days, it falls back to your most recent LinkedIn event (replies and acceptances); only if there is neither does it fall back to the last health check. The pill's tooltip now states explicitly which of the three it is showing: 'Last completed send at …', 'Last LinkedIn event at …', or 'Last health check at …'.
What to do: hard-refresh your dashboard (there is a 60-second cache). The tile should now reflect your most recent completed send. Hover over the pill to see which source it is using. If the time still doesn't match what you see in the prospect's activity log and your LinkedIn sent items, contact support — that's a counter out of step and we want to investigate it.
Why are some prospects parked waiting for a template fix?
If your campaign edit page shows a soft amber banner that says "N prospects waiting for this template to be fixed", those prospects are parked in a special status called pending_template_fix. They are not lost, not failed, and not consuming your LinkedIn account's daily or weekly safety budget. They are simply waiting for the template to validate cleanly before the engine attempts the next send.
What put them there
When the engine renders a step's message body just before sending, it parses the template's Liquid syntax (the {{firstName}}, {{company}}, {{custom.subject_line}} merge tags). If the parse fails — most commonly because of a typo like {{company} with one closing brace instead of two, or a referenced custom field that no longer exists in your prospect data — the engine deliberately does NOT send a broken message. It parks the prospect in a Pending Template Fix state and pauses scheduling until the template is fixed. This is the defer-not-burn pattern: parked prospects retry on the next campaign tick after the template is saved valid; they are not terminally failed.
What saving a valid template does (auto-resume)
As of early May 2026, saving a campaign with a valid template triggers an automatic re-arm pass on the platform side. The instant your save succeeds, the engine looks for every prospect on this campaign in the Pending Template Fix state, clears the sentinel for them, sets a fresh next-action timestamp in the next valid sending window (with 0 to 30 minutes of jitter so the engine doesn't get a synchronized burst), and updates the paired send job so the worker fires on the same timestamp the engine sees. The amber banner disappears on your next page refresh once the prospects clear out.
You don't need to click Resume after saving. The auto-resume handles the transition for you. If the banner is still there after a hard-refresh, it means some prospects are still waiting on a template that's still failing validation — open the affected step in the editor and use the Validate button to spot the typo. The validator points a caret marker at the exact position of the parse error.
Why we surface this on the edit page
The banner is non-destructive (soft amber, ARIA role="status" with aria-live="polite") and the page stays fully usable while it's visible. We surface it on the edit page specifically — not just on the campaign detail / running view — because the fix lives in the editor: open the affected step, fix the template, save. That's the action that resolves the parked prospects.
The banner shows the count of prospects currently parked for a template fix on this campaign. If you have a larger cohort spread across multiple campaigns or templates that have been parked since before the auto-resume hook landed, our team ran a one-shot retroactive re-arm that scans every stuck prospect, validates the current template, and re-arms anyone whose template now passes. Prospects whose template still fails validation are the ones the banner surfaces — they need a real fix in the editor before they resume.
Common questions
Will I lose prospects parked here? No. They sit in the parked status with a forensic record of the parse error attached for support. They retry on the next campaign tick after a valid save. No quota is consumed and no LinkedIn API call was wasted on the failed attempts (the parse error fires before any LinkedIn call).
Will this affect my LinkedIn account safety? No. Defer-not-burn is purely an internal state-flip. Zero new LinkedIn API calls, no rate-limit risk, no account flags. The engine respects per-account daily and weekly limits, sending windows, and timezone exactly as you configured them. Account safety always wins over throughput.
What if my template validates but the banner stays? Hard-refresh the page (60-second cache on the count). If the banner persists, contact support at [email protected] with the campaign name — there may be additional prospects parked under a related template that also needs review.