Rules troubleshooting
Last updated: May 19, 2026
Rules troubleshooting
The most common rule problems, what causes them, and how to fix. For each: a 1-line diagnosis + actionable next step. Always check execution history first (rul-111) — it usually surfaces the cause.
Who is this for
Anyone whose rule didn't behave as expected. First stop before contacting support.
Issue 1: Rule not firing
Symptoms
Activated rule, but no executions appear in /rules/:id after 15+ minutes.
Causes + fixes
Status check —
/rules/:idtop: status should beactive. Ifpaused: toggle to active. Iferror: see Issue 2.last_evaluated_at — should refresh every cron tick (within 15 min for
interval: 15). If stale: rule may be inerrorstatus (toggle issue) or cron service issue (rare; check/statuspage or contact support).Scope returns nothing — preview the rule (rul-109). If
entities_evaluated = 0: scope is wrong. Common: typo inname_contains, wrong ad account,status_in: [active]but entities are paused.Schedule mismatch —
daily_at_timerule won't fire until next configured slot. Check timezone matches workspace.
Issue 2: Status = error (circuit breaker tripped)
Symptoms
Rule status flipped to error. Notifications stopped. Last execution failed.
Causes + fixes
The circuit breaker auto-pauses rules when error rate ≥ 50% with 20+ errors. Review last_error:
Error message | Likely cause | Fix |
|---|---|---|
| Ad account token revoked | Re-authorize ad account at |
| Upstream API issue | Check platform's API status; may be transient |
| Action would produce invalid budget | Adjust rule's |
| Transient | Wait then retry |
| Entity deleted between eval and execute | Usually self-resolves; harmless |
After fixing root cause: manually toggle status from error to active. If circuit breaker re-trips within 1 hour: not fully fixed; pause + re-investigate.
Issue 3: Actions skipped (matched but didn't act)
Symptoms
Execution history shows entities_matched > 0 but entities_acted = 0 or much smaller. Per-entity reasons in entities_skipped.
Skip reason → diagnosis
| Diagnosis | Fix |
|---|---|---|
| Entity acted on recently (by this or another rule) | Wait until cooldown expires, or shorten |
| Rule hit | Raise the cap or accept the throttle |
| In-flight action in last 30 min for same entity | Self-resolves; if persistent, check for stuck SQS worker |
|
| Raise cap or accept the limit |
| E.g. | Fix rule scope to exclude conflicting states |
Most skips are protections working correctly. If most matches skip every cycle, the rule may be over-tuned.
Issue 4: Notification missing
Symptoms
Rule fired (execution history shows entities_acted > 0) but no notification arrived.
Causes + fixes
Cause | Check | Fix |
|---|---|---|
| Rule edit modal | Enable + save |
| Same | Tick at least one channel |
Telegram bot disconnected | Workspace integrations | Reconnect at |
Email in spam | Inbox + spam folder | Allowlist |
In-app notification cleared | Notification center | Check before clearing if you need to reference |
Issue 5: Postback metrics stale
Symptoms
Rule using purchases / roas / cpa fires on values that look wrong vs current dashboard.
Cause
Postback-fed metrics (purchases, purchase_value, conversions, roas, cpa, profit, profit_margin, conv_rate, aov) lag 24-72 hours vs current dashboard. Rule sees the snapshot at evaluation time.
Fix
Use longer time_range (last_7d minimum) for rules on postback metrics. Don't use today or yesterday for these — data is incomplete.
If the rule needs faster feedback: switch to a Meta-native metric (faster but ATT-impacted), or accept the lag.
Issue 6: Budget action rejected
Symptoms
entities_errored with message about budget minimum, or action skipped + recorded as entities_errored.
Cause
decrease_budget_pct would produce a value below platform minimum.
Platform | Entity level | Minimum |
|---|---|---|
campaign | $1 | |
TikTok | campaign | $50 |
TikTok | adset | $20 |
Meta / Snapchat / Taboola / LinkedIn | any | $2 |
Fix
Lower the
pctvalue (smaller decrease)Or scope out entities already near minimum
Or pause the entity instead (no budget action needed)
Issue 7: Rule fires too often
Symptoms
Many executions per day, notification flood, entities thrashing between paused and active.
Causes + fixes
Thresholds too loose — tighten conditions
Schedule too aggressive — raise
interval_minutesCooldown too short — raise
cooldown_minutesto default 360+No
max_executions_per_day— set to 3-5Multiple rules acting on same entities — see Issue 8
Issue 8: Conflicting rules
Symptoms
Same entity pauses + activates rapidly, or two rules adjust budget in opposite directions.
Cause
Two rules with overlapping scope + conflicting actions.
Fix
Audit
/rules→ identify rules with overlappingad_account_ids+entity_filterEither narrow scopes (different
name_contains) so they're disjointOr coordinate (only one active at a time, paused otherwise)
Or merge into single rule with combined conditions
Issue 9: Rule scope doesn't match anything
Symptoms
Preview returns entities_evaluated = 0.
Causes + fixes
Wrong ad account selected — verify in builder
name_containstypo — search the entity in Ads Manager to see exact namestatus_in: [active]but entities are paused — adjust filterEntity level mismatch — entities exist as adsets, rule scope = campaign (or vice versa)
Platform mismatch (cross-platform rules) — entities are on different platforms than
platforms[]
Issue 10: Preview shows matches but real fire doesn't act
Symptoms
Preview reports entities_matched > 0, but next execution reports entities_acted = 0.
Causes
All matches got skipped at execute time (cooldown, daily cap, pending action) — check execution history
entities_skippedMetric values changed between preview and fire (likely if running near threshold)
Rule got paused / status went to error between preview and fire
Escalation
If none of these match your issue:
Capture: rule ID + execution ID + timestamp + observed behavior
Check
last_error+detailsJSON in execution historyContact support with the above + rule export (if available)
Related
Protections + cooldown — understand skip reasons
Execution history — your primary debug tool
Ads Manager troubleshooting — entity-side issues