[puntego] E_BOOT_ORIGIN_NOT_ALLOWED: Not authorized for this page's origin. … https://docs.puntego.com/console-codes
boot/origin_not_allowed), which name the server’s answer; a console code names what the page should change.
Codes
| Code | Cause | Fix |
|---|---|---|
E_BOOT_ORIGIN_NOT_ALLOWED | /boot refused the page’s origin (403 boot/origin_*). An unknown or revoked app id answers the same, on purpose. | Serve the page from https on a verified domain of the workspace (Install → Domains), and check data-app-id. Local development: see local development. |
E_BOOT_DECLINED | /boot declined the request with another 4xx; the message names the status and its public reason (for example boot/invalid_request). | Look the reason up in Errors and correct the install attributes or identity token it names. |
E_BOOT_UNAVAILABLE | /boot answered 5xx. The widget retries on its own. | Nothing to change on the page. If it persists, contact support with the time it happened. |
E_BOOT_UNREACHABLE | /boot could not be reached at all (network, CSP connect-src, an ad blocker). | Allow the worker origin in connect-src (see CSP) and check the network. |
E_API_URL_INVALID | data-gp-api (or the apiUrl option) is not an https URL (http only on localhost), or carries credentials, a query or a fragment. | Use the worker URL from Install, exactly as shown. |
E_BOOT_SCRIPT_URL_INVALID | The boot script URL is not an https URL (http only on localhost). | Use the script URL from Install, exactly as shown. |
E_TRUSTED_TYPES_BLOCKED | The site enforces Trusted Types (require-trusted-types-for 'script') and does not allow Puntego’s policies. | Add puntego-loader, puntego-boot and puntego to the trusted-types directive (see CSP). |
E_RUNTIME_LOAD_FAILED | The runtime script failed to load (its URL, CSP script-src, or the network). | Check the script URL and CSP, then retry. With a signed-in customer, provide a fresh identity token: the previous one was discarded. |
E_SCRIPT_MOUNT_FAILED | The runtime or boot script could not be added to the document (the page threw while appending it). | Check for a script that locks document.head or a CSP that rejects it; the error object printed with the message names the cause. |
E_STYLESHEET_BLOCKED | The widget stylesheet was blocked, usually by a nonce-enforced style-src policy, so the assistant would be invisible. | Pass the nonce with data-nonce on the embed script, or allow the constructed <style> (see CSP). |
E_SDK_PROTOCOL_MISMATCH | The page-level SDK and the boot script on the page speak different protocol versions. | Use one current boot script and matching @puntego/* package versions (see SDK migration). |
E_APP_ID_CONFLICT | A second install asked for another app id while one was already on the page; the first one is kept. | Mount a single PuntegoProvider or snippet per page. To switch workspaces, reload the document. |
E_APP_ID_REQUIRED | init() or PuntegoProvider was called without an app id. | Pass the app id from Install (data-app-id or appId). |
E_CONFIG_IMMUTABLE | An install configuration that is fixed after boot (headless, or another provider setup) was changed without a reload. | Reload the document to apply the new configuration. |
E_IDENTITY_TOKEN_INVALID | The customer identity token is not a valid one-time token, or none was given where one is required. | Mint a fresh short-lived token on your server for each page load and identity change (see Authentication). |
E_IDENTITY_AFTER_BOOT | A customer identity arrived after the page-level SDK had already booted, or belongs to another install on the page. | Give the token to the first loader or provider call, with one identity-aware install per page; reload to switch customers. |
E_IDENTITY_PENDING | Another identity boot is still pending. | Wait for it, or reload the document to switch customers safely. |
E_IDENTITY_CHANGE_REFUSED | The visitor identity changed in a way the running widget cannot follow, or setIdentity() ran before init(). | Call init() first; after a change of signed-in customer, reload or use setIdentity() with a fresh token. |
E_IDENTITY_NOT_READY | The signed-in customer, or the guide after a sign-out, did not become ready. | Mint a fresh one-time identity token and check the worker, network and CSP. |
E_SDK_NOT_READY | The SDK did not become ready in time. | Check the worker URL, the network and the CSP; an SDK call made before ready throws this too. |
E_SDK_STOP_FAILED | The previous guide could not be stopped safely before a new one took over. | Reload the document before continuing. |
E_COLLECTION_PLACEMENT_INVALID | A data-puntego-collection placement key is not valid. | Use a lowercase letter first, then lowercase letters, digits, _ or - (see Experience collections). |
E_HOST_TOOL_REFUSED | registerTool() or usePuntegoTool() refused a host tool (its definition, the per-page limit, or a write tool on a runtime that runs none), or a tool was called through a declaration React had already replaced. | Correct the tool definition the message names, within the limits in Host tools. |
E_CONTEXT_INVALID | accountFacts or usePuntegoContext data was not plain JSON, or was over its size limit, and was not sent. | Pass a plain JSON object within the documented size (see Account facts). |
E_FRAME_CONFIG_INVALID | The sub-app snippet frame.js is missing data-parent-origin, or its data-gp-api is not a clean https URL. | Set data-parent-origin to the page origins allowed to guide the sub-app, and use the worker URL from Install (see Frames). |
E_CURSOR_PRESET_UNKNOWN | The launcher names a cursor preset key that does not exist; the default cursor is shown. | Pick a cursor in Brand, or pass one of the documented preset keys (see Configuration). |
E_BOOT_SCRIPT_REFUSED | The page-level SDK did not mount its boot script because the loader refused it; the loader printed its own code just before (for example E_API_URL_INVALID). | Fix what that earlier line names, then reload. |
E_HOOK_OUTSIDE_PROVIDER | A Puntego React hook was used outside <PuntegoProvider>. | Render the component inside the page-level <PuntegoProvider> (see React components). |
E_TURN_IN_PROGRESS | sendMessage() was called while another turn was still running; it rejects rather than queue. | Await the previous sendMessage() before sending the next one (see SDK reference). |