Docs
    GuidesAPI ReferenceBlog
    Sign inCreate account
    Overview

    Getting started

    Sign upAPI keysQuickstartLoad your catalog

    Integration

    Tracking EventsIdentity StitchingPersonalisation

    Production

    Errors & status codesRetries & rate limitsTypeScript SDKTroubleshooting

    Reference

    API ReferenceVersioningChangelog
    HomeDocumentationTroubleshooting
    Previous
    TypeScript SDK
    Next
    API Reference

    Skip the ML, Ship the Revenue

    Product

    • How It Works
    • Features
    • For Startups
    • For Developers

    Developers

    • Documentation

    Company

    • Blog
    • Contact

    © 2026 Lehnz, Inc. All rights reserved.

    Help

    Troubleshooting

    First-stop diagnostics for the most common integration issues. If your problem isn't here, the error catalog covers every status code we return.

    Recommendations look generic or stale

    If recommendations don't seem to reflect a user's behavior:

    • Cold start. Users with fewer than ~10 behavioral events get popularity-based fallback recommendations. Quality improves as events accumulate.
    • Anonymous-then-authenticated split. If you don't run identity stitching, the recommendation engine sees the signed-in user as brand-new. See Identity stitching.
    • Stale catalog. Items uploaded via the dashboard are processed asynchronously. If you uploaded recently, wait a few minutes.
    • Status filtering. Items with status: "inactive" are excluded from results. Check your catalog.

    Events don't show up in the dashboard

    • Check the response. A 202 Accepted means events were queued but not yet processed. They typically appear within a few seconds.
    • Browser blocking the request. Open Network tab and look for failed POSTs to ingestion.lehnz.com. Common culprits: ad-blockers, strict CSP, the request being cancelled on page navigation (use keepalive: true).
    • Wrong key. Browser-side calls require a publishable key — secret keys return 403.

    "Invalid API Key" but the key looks right

    • Whitespace or newlines. When pasting from password managers, hidden whitespace can sneak in. Wrap in quotes and trim before sending.
    • Revoked. Check the dashboard. Revoked keys return 401 immediately and cannot be reactivated.
    • Sent as Bearer. The header is X-API-KEY with the raw key. There is no Bearer prefix.
    • Wrong env. Did you copy a staging key into a production secret manager (or vice versa)?

    CORS errors in the browser

    lehnz allows browser-origin calls to ingestion and recommendations endpoints with lehnz_pk_ keys. If you're seeing CORS failures:

    • Confirm you're using the publishable (pk_) key, not the secret one.
    • Confirm the URL is https:// — not http or a custom subdomain.
    • Inspect the network tab for the actual response. Many CORS errors are misreported network/auth failures.

    CSV upload rejected

    • Header missing. The first row must be column names. If you exported from Excel and the first row is data, the upload fails.
    • Encoding. Save as UTF-8. Latin-1 or other encodings can produce malformed-CSV errors.
    • Embedded commas in attributes. Wrap fields with commas in double quotes: "red, large".
    • Smart quotes from a word processor. Use a plain text editor or your DB export tool, not Microsoft Word or Pages.

    Still stuck?

    Contact support@lehnz.com with your organization slug, the request URL, the request payload (with secrets redacted), and the full response body. Including the timestamp helps us correlate against server logs.

    What's next

    Errors & status codes

    Every error response with example payloads and fixes.

    Retries & rate limits

    Backoff strategy, batching, idempotency.