Skip to main content

Common questions

Copy the config prompt from your Sonarly dashboard and paste it into your coding agent (Cursor, Claude, Windsurf). Your agent will automatically install the tracker, configure sourcemaps, and set up backend tracing.
Frontend: React, Vue, Svelte, Angular, and vanilla JS. Backend: Express, NestJS, Fastify, Django, FastAPI, Flask. See the frontend page for details.
Sonarly detects errors from frontend and backend, clusters similar issues using AI, and sends email alerts only for critical issues among Blocking, Annoying and Harmless issues.
When a bug is detected, you can copy the full context (error, location, network requests, console logs, backend traces) and paste it directly into your coding agent to fix the bug.
Yes. Your data is encrypted in transit and at rest. You control what data is captured (sensitive inputs are masked by default). We never share your data with third parties.

Troubleshooting

Check that:
  • Your projectKey is correct
  • ingestPoint is set to https://sonarly.dev/ingest
  • Enable debug mode: __debug__: 5
If issues persist, contact us at founders@sonarly.dev
Verify that:
  • .map files are generated in your build
  • Upload command succeeded (no 404 errors)
  • Sourcemap paths match production URLs
Check that:
  • DSN format is correct: https://KEY@sonarly.dev/ID
  • tracesSampleRate is set to 1.0
  • Backend was restarted after configuration
  • CORS allows x-sonarly-session-id header (see CORS section below)
The Sonarly tracker adds an x-sonarly-session-id header to your API requests. This custom header triggers CORS preflight requests.Your backend must allow this header in its CORS configuration:
  • Add x-sonarly-session-id to the list of allowed headers
  • Make sure both yourdomain.com and www.yourdomain.com are in allowed origins
Common mistakes:
  • Missing origin in CORS config (causes Access-Control-Allow-Origin to be missing)
  • Different origins: example.comwww.example.com - add both!
  • Forgetting to redeploy after CORS changes
  • Browser caching old CORS responses (try incognito or hard refresh)
Large projects with sourcemaps can exceed Vercel’s 8GB memory limit.Solutions (in order of effectiveness):
  1. Exclude source content from sourcemaps (saves ~1GB):
// vite.config.ts
build: {
  sourcemap: 'hidden',
  rollupOptions: {
    output: {
      sourcemapExcludeSources: true,
    }
  }
}
  1. Split heavy dependencies (reduces peak memory):
manualChunks: (id) => {
  if (id.includes('node_modules')) {
    if (id.includes('firebase')) return 'firebase';
    if (id.includes('pdfjs-dist')) return 'pdf';
    // Add other heavy packages
  }
}
  1. Use esbuild (default in Vite) - don’t use minify: 'terser' which uses more memory
  2. Increase Node memory:
NODE_OPTIONS='--max-old-space-size=8192' npm run build
  1. Build locally and deploy pre-built - use GitHub Actions (14GB) instead of Vercel’s build
Never split React core packages (react, react-dom, scheduler) into separate chunks - this causes runtime errors.

Need more help?