No embed origins are set for this workspace
A framed embed session was requested, but the workspace lists no origins that may frame the signing page, so no page of yours could show it.
| Problem type | /problems/embed-origins-missing |
|---|---|
| HTTP status | 409 |
| Emitted by | REST API (/v1) |
| Extra members | settings_url |
| Response headers | Link |
| Trigger |
REST API (/v1):
a live-mode key mints a `message`-mode embed session for a workspace with no embed origins, so no page could frame it (D150, ADR 0048); the same mint from a test-mode key is a 201 carrying `warnings` with this code
|
What happened
POST /v1/documents/{doc_id}/recipients/{recipient_id}/embed-session was called with event_delivery set to message (the default, for an iframe) by a workspace whose embed origins list is empty. With a live-mode key the response is HTTP 409 with this slug and nothing is minted. With a test-mode key the session is minted and the 201 response carries a warnings entry with this code, plus a Warning header, so the sandbox still works while telling you what will go wrong.
What it means
Browsers only show the signing page inside a frame on an origin the workspace has allowed. The signing page sends that list as its frame-ancestors policy; when the list is empty the policy is 'self', and a page on any origin of yours gets a blank frame with no message to your code. A session minted in that state can never be displayed as asked, so a live mint is refused on the spot rather than reported as created. The check only sees an empty list: a wrong or misspelled origin still fails in the browser at render time.
What to do next
In the dashboard, open Settings, then Workspace, then Embedding, and add the origin of the page that embeds the signing page: a scheme and a host, with a port if there is one, such as https://checkout.example.com or http://localhost:3000 during development. Save, then mint again. The response body’s settings_url points at that page. If your signer is a mobile app that opens the URL full screen rather than in a web page, mint with event_delivery set to redirect or none instead; those need no origin.
Problem body
Every error the API returns is an RFC 9457 problem document with media type
application/problem+json. The type member is the
stable identifier to switch on; docs_url is this page.
{
"type": "/problems/embed-origins-missing",
"title": "No embed origins are set for this workspace",
"status": 409,
"instance": "/v1/...",
"docs_url": "https://staging.signenvoy-docs-b4g.pages.dev/errors/embed-origins-missing",
"settings_url": "..."
}