Troubleshooting campaign publishing

Last updated: May 19, 2026

Troubleshooting campaign publishing

Beyond pre-publish validation errors, broader issues happen after Publish is clicked. Top 10 with cause + fix. For platform-specific issues see meta-108 Meta, gog-106 Google, ttk-103 TikTok.

Who is this for

Mediabuyers hitting issues post-publish: stuck publishes, ads not delivering, rejections, ad-platform-side errors. The "I clicked Publish, now what" troubleshooter.

1. Publish stuck "in progress" > 5 min

Symptom: clicked Publish in Campaign Creator OR Bulk Launch row stuck on Pending/In Progress.

Cause:

  • SQS worker backed up

  • Source platform API slow

  • Token issue (refresh needed)

Fix:

  • Wait 5-10 more min (workers may be queueing)

  • Check /bulk-launch/status/:workerRunId for status detail

  • Refresh Wevion's Ads Manager — if campaign visible there, it published; just status display lag

  • If still stuck after 30 min: contact support with workspace ID + bulk_run_id (if Bulk Launch)

2. Publish succeeded in Wevion, campaign not visible on platform

Symptom: Wevion's Ads Manager shows campaign created (green badge), but Meta/Google/TikTok native ad manager doesn't show it.

Cause:

  • Token issue: campaign published with stale token, platform rejected silently

  • Sync delay: 15-30 min for platform-side sync

  • Wrong ad account in dropdown (campaign published to different account than you thought)

Fix:

  • Verify the account_id in Wevion's Ads Manager campaign detail matches the account you opened in native UI

  • Refresh native ad manager after 15 min

  • If still missing: check connector card status (yellow = reconnect needed)

  • Force resync via account card menu

3. Bulk Launch row failed

Symptom: row shows red status badge with error message.

Cause: per-row issue — most common:

  • account_id from disconnected account

  • Missing required field per-platform (e.g. fan_page_id missing on Meta row)

  • Permission denied on platform (token lacks Ads management on that account)

Fix:

  • Click row → see specific error

  • Fix the cell value

  • Click Retry on that row

  • For systemic issues (multiple rows failing for same reason): fix template + retry all

4. Ad rejected by platform post-publish

Symptom: campaign published successfully + activated, but specific ad shows rejected after platform review (4-24h typical).

Cause:

  • Policy violation: misleading claim, prohibited product, image with text-rule issue

  • Trademark misuse: competitor name in copy

  • Restricted content: alcohol, gambling, healthcare without registration

  • Quality issue: poor creative, broken landing page

Fix:

  • Check rejection reason in native ad manager (Meta Ads Manager → ad detail → status)

  • Edit ad: fix copy / replace creative / verify landing page

  • Republish via Wevion's relaunch flow (apps/backend/src/services/meta-relaunch-ads-service.ts)

  • For ambiguous rejections: appeal via Meta Business Help

5. Wrong currency in budget

Symptom: set budget $50/day in Wevion, but platform shows €50 or different.

Cause: ad account's currency is immutable (set at creation). The $50 was interpreted in the account's native currency.

Fix:

  • Check ad account currency: Wevion's /connect/{platform} → account detail

  • For mixed-currency portfolio: budgets stay native; cross-channel rollup uses workspace currency

  • To change currency: create new ad account in desired currency (Meta Business Manager); migrate campaigns

6. Campaign launched but not delivering

Symptom: campaign active, but 0 impressions / 0 spend after 24-48h.

Cause:

  • Audience too narrow (low fill rate)

  • Bid too low (no auction wins)

  • Ad in extended review (rare, > 72h)

  • Pixel + conversion event not firing (Sales objective needs active conversion event)

  • Account suspended on platform side

Fix:

  • Expand audience (verify reach estimate)

  • Increase bid (let LOWEST_COST run without bid cap initially)

  • Check native ad manager for review status

  • Verify pixel firing on landing page (Pixel Helper)

  • Check ad account status on platform

7. Duplicate campaigns published

Symptom: same campaign appears twice in native ad manager.

Cause:

  • Clicked Publish twice (double-click)

  • Bulk Launch row included same campaign config in two rows

  • Migration / import duplicated

Fix:

  • Pause duplicate campaign in native ad manager

  • Archive or delete the duplicate (don't both spend)

  • Wevion's audit log can identify the publish events to trace

8. Activated but spend = $0 after 4 hours

Symptom: campaign active 4+ hours, spend still $0.

Cause:

  • Audience size: extreme narrowness limits auction participation

  • Bid: too low to win impressions

  • Creative review: still in platform's review queue

  • Day cap on account: account-level spend cap might block additional spend

Fix:

  • Check native ad manager for delivery status

  • Increase audience size and/or bid

  • Wait for review (up to 24h typical)

  • Check account-level spend limits

9. Campaign Creator preview looks fine, platform preview different

Symptom: Wevion's live preview shows the ad nicely, but Meta's preview shows differently (wrong crop, missing text, etc.).

Cause:

  • Aspect ratio mismatch between Wevion preview + platform actual

  • Text overlay positioning differs per platform

  • Wevion's preview is approximation, not pixel-perfect to platform

Fix:

  • Trust platform's preview (Meta Ads Manager native preview) for final verification

  • For aspect ratios: provide multi-aspect uploads matching each placement

  • Re-crop or re-design creative to match platform's safe zones

10. Meta returns generic error code

Symptom: Wevion shows error like "Meta API error 1234567".

Cause: passed through from Meta's API. Wevion may not have a friendly message for every code.

Fix:

  • Look up error code at Meta's Marketing API errors docs

  • Common Meta codes:

    • 100: Invalid parameter

    • 190: OAuth token expired (reconnect)

    • 200: Permission denied

    • 1487: Generic API error

    • 1815136: Ad creative blocked (policy)

  • For ambiguous codes: contact support with full error message + workspace ID

When to contact support

support@wevion.ai when:

  • Issue not in this list

  • Multiple attempts to fix didn't work

  • Suspected Wevion bug (data corruption, publish-state inconsistency)

  • Platform-side error you can't decode

Include:

  • Workspace ID

  • Campaign ID (and/or bulk_run_id)

  • Platform (Meta/Google/TikTok/etc.)

  • Approximate timestamp

  • Exact error message

  • What you've tried

Response: 1-2 business days; priority on Pro/Enterprise.

Useful diagnostics

Before contacting support:

  • /ads-manager → campaign detail → History tab + last error

  • /bulk-launch/status/:workerRunId for wave detail

  • Audit log filter action: campaign_publish_failed + relevant resource_id

  • Browser DevTools → Network tab during Publish action → capture 4xx/5xx response

  • Native platform's ad manager error message (often more detailed than Wevion's surface)

Recovery patterns

Recovery 1: Failed Bulk Launch wave

  1. Identify failed rows in Bulk Launch status

  2. Group by error type (often patterns: same connector issue, same validation miss)

  3. Fix root cause once → retry all failed rows

  4. Verify all rows succeed before declaring wave done

Recovery 2: Campaign published wrong account

  1. Pause campaign in wrong account

  2. Wait for any incidental spend to register

  3. Create new campaign in correct account

  4. Archive the wrong-account one (don't delete; preserves audit)

Recovery 3: Ad rejected for policy

  1. Fix the violation (rewrite copy, replace creative)

  2. Republish (creates new ad, original archived)

  3. For repeat issues: review Meta's ad policies + train team

Best practices

Always use pause-first

cc-119 pause vs active. Catches issues pre-spend.

Monitor Bulk Launch wave status

After publishing a Bulk Launch wave: monitor status page until all rows complete (success or fail). Don't walk away.

Document failed launches in audit log notes

When investigating failures, leave notes (Wevion may support audit-log annotations). Future team members benefit.

Have a recovery checklist

For each campaign type, have a 5-min recovery checklist for the most common failure modes. Speeds incident response.

Related