Troubleshooting the SDK
No requests, a wrong project key, and a dev build.
The SDK initialises but sends no requests. What is wrong?#
The console shows the success line and the network tab stays empty. Check these three, in this order.
- How the site was opened. Headless and automated browsers, such as Playwright, Puppeteer, Selenium or Lighthouse, are filtered as bot traffic: their events are dropped silently, with no error. A coding agent that tests its own install this way sees a healthy init and no requests. Open the live site in an ordinary browser window and click around; the requests to in.heycatch.ai follow within a few seconds, because events are sent in batches. Then press "I've installed" within the next half hour.
- The installed version. One that ends in -dev sends to a separate development backend, so nothing reaches your dashboard, see "My installed SDK version ends in -dev. Does that matter?".
- Consent. If your init passes optOutCapturingByDefault: true, nothing is sent until analytics.optInCapturing() is called.
If the project key in my install is wrong, will I see an error?#
Usually not, and that is the trap. If the key still looks like a key, meaning it starts with hck_pk_, the SDK accepts it, your build succeeds and your events go nowhere. A placeholder left in the snippet behaves exactly like that.
A key that is missing or clearly malformed only writes an error to the browser console. It never breaks your build either.
So if verification comes back empty, check that the exact key from the install panel is in the file, quotes included, and that no placeholder text is left behind. While your install is unconfirmed that panel is the Analytics, Install screen in the sidebar; once an install is live it sits behind the gear icon on Analytics, Product.
My installed SDK version ends in -dev. Does that matter?#
Yes, and it explains an install that looks perfect while no data ever arrives. A version that ends in -dev followed by a number, for example 0.7.0-dev.59, is one of our internal builds. It sends events to a separate development backend, so nothing you record reaches your dashboard, and nothing anywhere reports an error.
Pin a plain version with no -dev. The current one is 0.8.0.
- On npm: install @heycatch/sdk@0.8.0 and check your lockfile no longer holds a -dev version.
- On the CDN route: import https://esm.sh/@heycatch/sdk@0.8.0 inside a
<script type="module">block. An unpinned URL re-resolves on every page load, which is how a -dev build arrives without anyone choosing it.