Common failures
Optional code runs before consent
Likely causeThe bootstrap is deferred, client-injected, or placed after a tag manager.
FixServer-render the exact bootstrap first. Treat the document order as enforcement.
pact-gate never appears
Likely causeThe purpose is unknown, denied, or the bootstrap did not run.
FixCheck pactClient.getState(), spelling, and the pact-error event. Unknown purposes correctly remain hidden.
Texas loads pact.js immediately
Likely causeAn adapter or application calls openPreferences during startup.
FixRegister controls without opening them. The bootstrap itself resolves without loading the core.
GPC looks active but marketing ran
Likely causeMarketing executed before the bootstrap or Sec-GPC was not forwarded by SSR.
FixMove enforcement earlier and render data-gpc=1 at the server boundary.
The install command returns 404
Likely causePact SDK packages are still in private preview and have not been published to npm.
FixUse the generated pilot handoff or source workspace during evaluation. Public package release is pending.
Production check stays pending
Likely causeThe runtime hostname or tenant key does not match the configured site.
FixInspect data-tenant, the exact production domain, and /v1 runtime connectivity.
Capture a diagnostic snapshot
await window.pact.ready
console.table({
region: window.pact.region,
gpc: window.pact.gpc,
decided: window.pact.decided,
purposes: JSON.stringify(window.pact.purposes),
})