Troubleshooting
Common error messages and how to fix them.
Integration errors
"Credentials rejected by portal"
The username/password or API key didn't work. Log in to the brand's portal directly to verify the credentials still work. If they do, clear the integration row, re-add, and paste exactly the same values — avoid copying trailing spaces.
"Selector changed" / "Stats table not found"
The brand's portal HTML changed and the scraper can't locate the stats table. Check the integration detail page — we captured a screenshot + HTML dump. Usually we push a selector update within 24 hours; open a support ticket with the integration ID to expedite.
"Rate limited" / "HTTP 429"
The brand's API temporarily rejected too many requests. Our worker backs off exponentially and the next scheduled tick recovers. If this persists, lower the sync frequency on the integration (Settings → Sync cadence).
"Proxy connection refused"
Self-hosted only. Your Bright Data / Smartproxy credentials are wrong or expired. Check BRIGHT_DATA_USERNAME / BRIGHT_DATA_PASSWORD in the worker env.
Dashboard issues
Numbers are zero but I know I had activity
First check the integration status on /app/integrations — if it's still pending, the first sync hasn't run yet. Otherwise check the sync history for errors. If the sync succeeded but rows_ingested is 0, the brand's portal may be returning an empty date range — try widening the date filter on the Stats page.
Currency totals look wrong
Each row has a native currency and a base-currency conversion. If you're mixing EUR and USD rows and seeing unexpected totals, check the base currency in Settings → Organization. Switching base currency triggers a reconversion of all historical rows.
Magic link email not arriving
Check spam. If still missing, your workspace hasn't configured SMTP — default Supabase email has a 3/hour rate limit. Ask the workspace owner to configure Resend or another SMTP provider.
API issues
"403 Forbidden" on an API key
The key is missing a required scope. Go to Settings → API keys, check "Scopes" for the key in question, and add the missing one. Or create a new key — keys are immutable after creation.
"429 Too Many Requests" from our API
Default rate limit is 300 req/min per key. Contact support to request an increase. For bulk exports, use the stats export endpoint with cursors rather than hammering list endpoints.
Still stuck?
Email support@xuly.io with your integration or sync run ID. We reply within one business day — urgent Enterprise tickets go 24/7 via the in-app chat.