Checkpoint Docs

Troubleshooting

Symptom-first index of common Checkpoint issues: what you see, the likely cause, and the page that fixes it

Find the symptom you are seeing, check the likely cause, and follow the fix link. The full diagnostic steps live in each page's Troubleshooting section; this page is the index that gets you there.

Install

SymptomLikely causeFix
Fresh install, no detections anywhereProject ID wrong, or env vars not loaded by the runtimeQuick Start: not detecting agents
Not sure which credential goes in which env varProject ID and API key each map to a specific variable per integrationCredentials
Next.js middleware never runsmiddleware.ts not at the project root, or the matcher skips your routeNext.js: middleware not running
Express middleware does nothingtenantHost not set, or the middleware is mounted after your routesExpress: middleware not working
.NET responses carry KYA-Detection: unavailableThe app pool runs 32-bit; the detection engine requires a 64-bit host process.NET: detection unavailable on a 32-bit host
.NET Framework: first request returns 500 with FileLoadException (0x80131040)Binding redirects missing in a PackageReference project.NET: FileLoadException
.NET Framework: FileNotFoundException for wasmtime.dllKyaOs.Checkpoint older than 0.2.2, or the project references only Checkpoint.Core.NET: wasmtime.dll not found

Detect

SymptomLikely causeFix
Pixel script not loadingAd blocker or CSP blocking the script, or the Project ID is wrongPixel: not loading
Pixel loads but the dashboard stays emptyProject ID mismatch, unpublished GTM container, or the visitor sends Do Not TrackPixel: no detections in dashboard
CSP violation for the pixel scriptscript-src does not allow https://kya.vouched.idPixel: Content Security Policy
Beacon throws "Project ID is required"projectId missing or empty in the configBeacon: Project ID required
Beacon sends nothing, and no errors appearDo Not Track is honored by default, or a CSP, proxy, or tracker blocker blocks the requestBeacon: no detections in the dashboard
Beacon worker failures are invisibleExpected behavior: the Beacon falls back to the main thread; enable debug logging to see itBeacon: worker failures
Custom events not appearingEvents are batched until the flush interval, and queued while offlineBeacon cookbook: events not appearing
Middleware verdicts computed but never reportedapiKey not set, so results stay localMiddleware cookbook: no detections in the dashboard
onAgentDetected never fires (Next.js)It only runs when a request is classified as an agentMiddleware cookbook: callback never fires
req.checkpoint is undefined (Express)Session tracking wiring (withSessionTracking plus cookie-parser) is missingMiddleware cookbook: req.checkpoint undefined
Too many false positivesPolicy too aggressive for your traffic; observe before enforcingQuick Start: too many false positives

Enforce

SymptomLikely causeFix
Gateway status stuck on "Pending"DNS record not detected: typo, conflicting records, or propagation still in progressGateway: DNS record not detected
Gateway status shows "Error"Conflicting DNS records, unreachable origin, or CAA blocking certificate issuanceMonitoring: gateway shows Error
SSL certificate not provisioningCAA records block issuance, or the Cloudflare proxy is on (the record must be DNS-only)Gateway: SSL certificate not provisioning
Site returns 502 after adding the Gateway CNAMEThe Gateway cannot reach your origin sidecarSidecar cookbook: 502 after CNAME
Apex DNS records keep reappearingA hosting provider with DNS access recreates themSidecar cookbook: apex records rewritten
Agents not being blocked (Gateway)Policy saved as a draft and never deployed, or the deployed-policy cache has not refreshedGateway cookbook: requests not being blocked
Blocking not working (middleware)enforcementMode set to 'observe', or the route is outside the matcherEnforce middleware cookbook: blocking not working
Everything gets blocked, humans includedA forbid rule is too broadEnforce middleware cookbook: all requests blocked
Policy edits not taking effect (middleware)Policies are cached for policyCacheTtlSeconds (default 300s), or the edit is still a draftExpress: policy changes not taking effect
Policy edits not live after Compose changesDraft saved but not redeployed, or the gateway's policy cache has not expiredPolicies cookbook: troubleshooting
Wrong verdict on a requestA different rule matched; forbid overrides permitPolicies cookbook: troubleshooting
High detection latency at the GatewayUncached signature key fetch, or a slow originMonitoring: high latency
Health endpoint reports the engine degradedThe WASM detection module failed to initializeMonitoring: WASM not initialized
Gateway traffic missing from the dashboardProject ID mismatch, or requests bypass the Gateway DNSMonitoring: detection not appearing

Govern

SymptomLikely causeFix
redirect_uri_mismatch on the GitHub consent screenThe registered callback URL differs from what the gateway sends, character for characterGitHub connection: redirect_uri_mismatch
"Bad credentials" on tool calls after a successful connectThe GitHub token was revoked externally; the reconnect is manualGitHub connection: bad credentials
state mismatch in gateway logs on OAuth callbackAuthorize and callback more than 10 minutes apart, or the flow finished in a different browserGitHub connection: state mismatch
Bouncer returns 401 for every requestWrong API key or project ID, or the client omits the _meta.proof.jws envelopeMigration cookbook: 401 for all requests
Scopes always emptyThe delegation grants no scopes, tools are unregistered, or consent was skippedMigration cookbook: scopes always empty
Proof verification failsPrivate key does not match the DID, or the proof's validity window expiredMigration cookbook: proof verification fails
Tool marked protected in the dashboard, but the server still allows callsThe tool is not discovered or assigned to a protection yet, or the middleware's config cache (default 5 minutes) has not refreshedTool Protection: configuring tools
Identity not loading on a self-hosted server.mcpi/identity.json missing, or MCP_IDENTITY_PRIVATE_KEY wrongSelf-host cookbook: identity not loading
Delegation verification fails on a self-hosted serverWrong API key and project ID pair, or the proof is not a compact JWSSelf-host cookbook: delegation verification fails
Dashboard deploy pipeline failsGitHub App not installed, repo name taken, or App permissions insufficientDeploy cookbook: pipeline fails
Cloudflare deploy step failsToken missing scopes, wrong account ID, or a worker name conflictDeploy cookbook: Cloudflare deployment fails
DID document empty at /.well-known/did.jsonIdentity secret not set on the deployed workerDeploy cookbook: identity not resolving
identiclaw deploy or bot issuesSee the symptom table in the quickstartidenticlaw quickstart: troubleshooting

Dashboard and API

SymptomLikely causeFix
429 with code RATE_LIMIT_EXCEEDEDYour plan's request rate is exceeded; the X-RateLimit-* response headers say when the window resetsAPI Reference: rate limits
CORS error calling /api/v1/detect from a browserThe detect API is server-side only: it needs an API key, and keys must never ship to the browser. Use the Pixel or Beacon on the clientAPI Reference: which endpoints need a key
401 with code AUTH_INVALID_API_KEY, AUTH_MISSING_CREDENTIALS, or AUTH_UNAUTHORIZEDKey sent in the wrong header (it belongs in X-API-Key), no key sent at all, or the key belongs to a different projectAPI Reference: authentication
window.Checkpoint is undefinedThe pixel script had not loaded when identify() ranIdentify Users cookbook: window.Checkpoint undefined
User badge not appearing in the Activity feedidentify() not reaching the API, or the data has not landed yetIdentify Users cookbook: badge not appearing
Identified user not showing in the dashboardPixel not loaded, project mismatch, or a CSP or network errorIdentify Users cookbook: user not showing
Session resets on every page reloadCookies blocked, or consent required but not grantedIdentify Users cookbook: session not persisting
"window is not defined" in Next.jsBrowser-only code running during server-side renderingIdentify Users cookbook: window is not defined

Still Stuck?