Skip to content

Troubleshooting

Symptoms first, fixes second. Find your problem in the list, follow the steps.

If your symptom isn’t on this page, email support@campaignly.papathemes.com with your shop domain + a brief description; we’ll triage within one business day.

”My discount didn’t apply at start time”

Most likely the EventBridge schedule fired but the apply Lambda hit an error. Check:

  1. Open the Campaign in the admin. If status is still scheduled ~30 seconds after start time, the apply didn’t fire at all.
  2. Open the Audit log for that campaign. If you see campaign.apply_failed rows with an error message, that’s the root cause.
  3. Common causes:
    • Shopify access token revoked — the merchant uninstalled + reinstalled, or the token’s 24-hour TTL elapsed while no admin traffic refreshed it. Open Campaignly in the embedded admin (any page) and the token refreshes automatically; the next apply fires successfully.
    • Product was archived in Shopify between scheduling time and start time. Archived products fail the variant lookup. Fix the products on Shopify side, then re-create the campaign.
    • Shopify outage — rare but if Shopify’s GraphQL API is down, the apply Lambda dead-letters and you’ll see campaign.apply_failed with a 503 or 5xx error.

”A product has a weird price on the storefront”

Usually a stale price-stack row from a campaign that failed to revert cleanly. Two recovery paths:

  1. Wait for reconciliation — every 6 hours a background worker scans every stack entry, checks whether its owning campaign is still live, and resets variants whose stack is “orphaned” (every referenced campaign is cancelled / completed / failed). Within 6 hours of the orphan appearing, the price should be back to its true baseline.
  2. Force it now — open the campaign in the admin and click Cancel campaign even if the campaign already shows cancelled. The cancel route runs an immediate revert which pops the stack entry and writes the correct price back to Shopify within ~60 seconds.

If neither works, email support with the variant ID and we’ll inspect the stack row directly.

”I got a ‘manual price-override detected’ email”

This is intended behaviour — Campaignly noticed you (or your team) edited a price in Shopify admin while a campaign was running. We sent the email so you know we noticed; we’re not stopping the campaign or undoing your edit.

What we did under the hood:

  • Captured your edit as the new “baseline” for that variant.
  • When the campaign ends, we’ll revert to your edited value, not to the pre-campaign original.

If the email is wrong (you didn’t edit anything, or you edited a different variant), it’s probably a stale products/update webhook replay. Reply to the email and we’ll inspect.

”The ‘Get Started’ button on the marketing site shows my old admin”

The button points at Shopify’s app install URL, which Shopify routes to your store’s most recent install of Campaignly. If you uninstalled recently and the button still loads the old session, hard-refresh your browser (Cmd+Shift+R / Ctrl+Shift+F5) to clear the cached redirect.

”I see the campaign status as cancelled but the price is still discounted”

This is the classic “revert in flight” window — the cancel route schedules an immediate revert for ~60 seconds after the cancel click. Wait the minute, then refresh the storefront. The price should be back to baseline.

If after 5+ minutes the price is still discounted:

  1. Open the Campaign → Audit log. Look for campaign.revert_failed rows.
  2. If the revert failed, click Cancel campaign again — it re-runs the revert.
  3. If the revert keeps failing, email support with the campaign ID. We can manually re-fire the revert Lambda.

”I can’t delete a cancelled campaign — the Delete button is greyed out”

The Delete button is gated on a flag (pendingShopifyRevert) that the revert worker clears on full success. Two possibilities:

  1. Revert in flight — wait a minute; the button re-enables automatically (the UI polls every 5 seconds).
  2. Revert failed and the flag is stuck — the reconciliation worker clears the flag on its next 6-hour sweep. If you need it sooner, click Cancel campaign to re-trigger the revert.

”Plan limit error: ‘You’ve reached the limit of N active campaigns’”

You hit the plan cap. Either:

  • Cancel an existing campaign to free up a slot.
  • Upgrade to the next plan tier (Free 1 → Starter 3 → Pro unlimited).

The error message includes the cap that triggered it — see Billing Plans for the matrix.

”My storefront countdown widget isn’t showing”

The widget is Starter+ only. Free tier doesn’t include it. Verify:

  1. Settings → Storefront widget — toggle is ON.
  2. Plan — is currently Starter or Pro (not Free).
  3. Theme — Campaignly’s app block has been added to the product-page section in the Shopify theme editor.

Missing the app block is the #1 cause. Add it via Shopify’s theme editor: Customize → Add block → Campaignly: Countdown.

”I’m getting a ‘campaign_times_immutable’ error when editing”

By design — you can’t change startTime or endTime on an existing campaign because that would desynchronise the EventBridge schedules from the campaign row. The recommended flow is to cancel the campaign (which runs an immediate revert if it was active) and create a new one with the desired times.

Still stuck?

Email support@campaignly.papathemes.com with:

  • Your shop.myshopify.com domain.
  • The Campaign ID (visible in the URL on the Campaign detail page).
  • A screenshot or a quick description of what you expected vs. what happened.

We’ll respond within one business day, usually faster.