Analytics troubleshooting
Last updated: May 19, 2026
Analytics troubleshooting
The most common Analytics issues, what causes them, and how to fix. For each: 1-line diagnosis + actionable next step. Always start by checking data freshness — sync + cache + postback lag explain most "numbers don't match" complaints.
Who is this for
Anyone hitting a discrepancy or missing feature in Analytics. First stop before contacting support.
Issue 1: Data stale / behind platform UI
Symptoms
Wevion shows older / different numbers than the platform's native dashboard.
Causes + fixes
15-min sync cadence — Wevion polls platforms every 15 min. Up to 15 min lag is normal.
10-min Redis cache (Cross-Channel only) — adds up to 10 min on top of sync. Total: up to 25 min lag.
24h demographics cache — demographic data refreshes daily.
24-72h postback lag — purchases / ROAS / CPA take 1-3 days to settle.
Fix:
Wait the cycle
For ROAS / CPA: use
last_7dminimumIf > 1 hour stale: check service status; contact admin
See an-114 data freshness for the full picture.
Issue 2: Cross-Channel UI missing
Symptoms
Mode toggle doesn't show Cross-Channel option.
Cause
ENABLE_CROSS_CHANNEL_ANALYTICS env flag is off for your workspace.
Fix
Ask your admin to enable the flag. It's a deployment-level setting (env var + service restart).
If admin says it's enabled but you still don't see: check role permissions — Cross-Channel routes require ROLE_GROUPS.DASHBOARD.
Issue 3: Date range > 90 days rejected
Symptoms
Cross-Channel page or export returns error "date range exceeds 90 days".
Cause
MAX_DATE_RANGE_DAYS = 90 hard limit in cross-channel-analytics.service.ts.
Fix
Options:
Split into 2 or 3 calls (e.g. last 90 days + prior 90 days), concatenate externally
Switch to Single Platform mode (no hard cap; practical limits apply)
For exports: same 90-day limit applies (
EXPORT_UNIFIED_REPORTSQS worker)
Issue 4: ROAS / CPA wrong vs platform UI
Symptoms
Wevion shows ROAS 1.8; Meta UI shows ROAS 2.3 for the same campaign + date range.
Causes + fixes
Postback lag (most common) — Wevion's postback fetch is 24-72h behind; platform UI may be using more recent data. Use
last_7dminimum; let data settle.Attribution window difference — Meta default is 7d click + 1d view; if Wevion uses a different effective window, totals differ slightly.
Currency conversion — Cross-Channel converts to
target_currency; small FX variance.Conversion event definition — Wevion may track different conversion events than what Meta UI displays. Verify event mapping.
Fix: trust the longer window; pair with tracker postbacks (PRD-14 com-*) for ground truth.
Issue 5: Currency mismatch
Symptoms
Numbers in unexpected currency or stakeholders confused about which currency.
Causes + fixes
target_currencyparameter wrong — check URL or workspace defaultCross-Channel converts; Single Platform uses native — mode-dependent
Workspace default changed recently — historical data re-rendered
Fix:
Verify workspace currency at
/settings → WorkspaceFor consistency: pick one
target_currencyand stick with it
Issue 6: Export stuck pending
Symptoms
Export job submitted but status: pending for > 10 min.
Causes + fixes
SQS worker backlog — usually self-resolves within 10-15 min
Large dataset — 90 days + 5 platforms + PDF = slow; budget 10+ min
Subscription expired — request rejected; check
/settings/team/billing
Fix:
Wait
If > 30 min: check
errorin job_resultIf error: typically timeout on too-large scope — narrow date range or platforms
See an-116 export.
Issue 7: Export job failed
Symptoms
status: failed + error_message in job_result.
Common error_message → diagnosis
error_message | Cause | Fix |
|---|---|---|
| No active subscription | Top up at |
| Too long | Split |
| Too many entities / too long | Narrow scope |
| Upstream platform sync issue | Retry after few min |
Issue 8: Demographics outdated
Symptoms
Audience hub demographics show old data; expected refresh didn't happen.
Cause
24h cache on audience-insights.service.ts. Refreshes once daily.
Fix
Wait until next day. No manual refresh available from UI (by design).
Issue 9: Missing tracker enrichment
Symptoms
Tracker columns (tracker_clicks, tracker_conversions, tracker_revenue, etc.) empty.
Cause
No tracker integration connected for this account (see PRD-14 com-*).
Fix
Set up tracker integration. Tracker enrichment requires Keitaro / Voluum / RedTrack / BeMob / TG Tracker connected. See com-106 Keitaro (or relevant integration article).
Issue 10: Cross-Channel cache shows stale data
Symptoms
Cross-Channel data clearly older than Single Platform for same campaign.
Cause
Redis cache (10-min TTL) hit; fresher data exists but cache hasn't expired.
Fix
Wait up to 10 min
Adjust date range params slightly to bypass cache (different cache key)
Switch to Single Platform mode (no Redis layer)
Issue 11: Member / team scoping confusion
Symptoms
Insights show different numbers for different users.
Cause
/api/v1/insights/campaigns accepts member_id and team_owner_id params — filters insights to that user's scope.
Fix
Verify which
member_id/team_owner_idis in your URLFor workspace-wide: leave both unset (or owner_id = workspace owner)
Check role + canViewTeam permission
Issue 12: Recommendation contradicts intuition
Symptoms
Budget recommendation suggests shifting away from a platform you believe in strategically.
Cause
Recommendation is rule-based on historical ROAS only (see an-109). Doesn't see:
Brand reach value (long-term)
New-market testing (intentional low-ROAS)
Audience cap / saturation (you can't infinitely scale)
Fix
Treat recommendation as input, not output
Combine with strategic context
Apply partial deltas (50% of recommendation)
Verify postback data is settled (last_14d minimum)
Escalation
If none of the above match:
Capture: endpoint + query params + observed value + expected value + timestamp
Check service status (if
/statusavailable)Check audit log for unusual actions
Contact support with details
Related
Data freshness — root of many issues
Exchange rates — currency-specific
Ads Manager troubleshooting — entity-side companion