Troubleshooting
Events not showing up
Check that your project key starts with pk_. Copy both keys from project settings directly — extra spaces or newlines will break validation.
The SDK logs to your console when ingest fails. Look for warnings prefixed with kohi monitor. These messages tell you exactly what went wrong.
Authentication errors
If the SDK reports unauthorized or signature errors, your project key or secret key doesn’t match. Re-copy both from Settings → Project in your dashboard. Keys are scoped to a single project.
Wrong client IPs
The SDK reads the first matching proxy header it finds. If your reverse proxy or CDN strips or rewrites these, the recorded IP will be wrong. Make sure your proxy forwards a standard header like X-Forwarded-For.
Next.js: nothing captured
Only /api/* routes are recorded. Static pages and _next/* are skipped — this is by design, since static delivery is handled by the CDN, not your application.
instrumentation.ts must be in your project root (not app/ or src/). It must export async function register() with a NEXT_RUNTIME === "nodejs" guard and a dynamic import(). Requires Next.js 14+.
High memory usage (Go)
Call monitor.Close() on shutdown (use defer). This flushes the buffer and stops background goroutines.
Rate limiting
The SDK retries automatically with exponential backoff. Persistent 429s mean you’re over your plan’s limits — check Settings → Plan to see your current usage and upgrade if needed.
If you’re still stuck, check the configuration reference.