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.

CLI

SymptomLikely causeFix
kya-os: command not found right after installing~/.kya-os/bin isn't on this shell's PATH yetOpen a new terminal, or run export PATH="$HOME/.kya-os/bin:$PATH". See Installation
Installer: musl libc (e.g. Alpine) is not supported yetNo musl build of the CLIUse a glibc-based image, or npm install -g @kya-os/cli with a glibc Node
Installer: Windows is not supported by this installer yetNo native Windows buildRun the installer inside WSL. See Installation
Installer: integrity check failed for downloaded package (sha512 mismatch)The download doesn't match the registry's hash (a caching proxy, a bad mirror, or tampering)Nothing was installed. Retry; if it persists, check --registry and any proxy in between
kya-os setup waits for a browser that never opensAn SSH session or a headless machinekya-os setup --device, then approve the code from any other device
Native credential store is locked or inaccessiblemacOS: the Keychain is locked or access was denied. Linux: no Secret Service keyring is running (servers, containers)macOS: unlock the Keychain and allow access. Linux servers: sign in and link on your workstation, then on the server run kya-os detect install --project <id>, which needs no sign-in for the pixel and beacon
This sign-in covers N projects. Choose one with --projectSeveral projects, and no terminal to ask inPass --project <id or name>, or set KYA_OS_PROJECT. A name no project has yet is offered for creation at sign-in
… is not one of the projects this sign-in was grantedThat project wasn't selected on the consent page when you signed inkya-os login --project <id or name>, then grant it on the consent page, or create it there
This sign-in was granted no projectsThe organization has no project yet, or none was selectedRun kya-os setup again, and create or choose a project on the consent page
Ignoring .kya-os/project.json: it links a project on …The repository was linked against another Checkpoint (staging, a local server)Set CHECKPOINT_API_URL to that origin, or relink with kya-os projects use <id>
not applied without a terminal; re-run with --yesCI, or an agent with no terminalReview the printed plan, then rerun with --yes
Server-side detection needs this project's runtime keyNo CHECKPOINT_API_KEY in the app's .env.local or .env, and no sign-in to mint one (or the stack keeps its key elsewhere)kya-os login, then rerun kya-os detect install --surface sdk to mint one; or kya-os checkpoint key set
Your plan's API key limit is reached, so no key was mintedThe plan's key cap counts every unrevoked keyRevoke an unused key in the dashboard, or store an existing one with kya-os checkpoint key set
Checkpoint ended the management sessionThe session was revoked, went 30 days unused, or reached 90 dayskya-os login

Install

SymptomLikely causeFix
Fresh install, no detections anywhereProject ID wrong, or env vars not loaded by the runtimeQuickstart: 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 runsproxy.ts/middleware.ts not at the project root (or in src/ for a src/ app), 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 enforcingQuickstart: 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
Checkpoint middleware 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

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 a Shopify buyer has not allowed analyticsIdentify 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?

  • Email support with the error message, the integration you use, and the steps to reproduce
  • Ask in our Discord community