{"componentChunkName":"component---src-templates-simple-markdown-js","path":"/process-intelligence-apis/subscription-api/faq/","matchPath":"","result":{"data":{"markdownRemark":{"html":"<h1 style=\"position:relative;\"><a href=\"#frequently-asked-questions-faq\" aria-label=\"frequently asked questions faq permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"frequently-asked-questions-faq\"></div>Frequently Asked Questions (FAQ)</h1>\n<h2 style=\"position:relative;\"><a href=\"#requests-to-subscription-apis-are-blocked-by-the-browser-cors-policy-what-do-i-do\" aria-label=\"requests to subscription apis are blocked by the browser cors policy what do i do permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"requests-to-subscription-apis-are-blocked-by-the-browser-cors-policy-what-do-i-do\"></div>Requests to Subscription APIs are blocked by the browser CORS policy. What do I do?</h2>\n<p>When facing this issue, you will see a CORS error like the one below:</p>\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"49477075543028785000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`Access to XMLHttpRequest from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.`, `49477075543028785000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-49477075543028785000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">Access to XMLHttpRequest from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.</code></pre></div>\n      </div>\n<p>This error occurs when the browser is trying to make a request to a different origin (domain) than the one it's hosted\non and the server the request is being sent to is not configured to allow cross-origin requests.\nThe <code class=\"language-text\">Access-Control-Allow-Origin</code> header is used to specify which origins are allowed to access the resource. If this\nheader is not present, the browser will block the request and the above error message will be displayed.</p>\n<p>Unfortunately, for security reasons, we can't add \"localhost\" to the response 'Access-Control-Allow-Origin' HTTP header,\nso this issue must be solved from the API consumer side.</p>\n<p>In order to solve this problem, we recommend using a REST client instead of a web browser. This would also ease the\nprocess of setting the proper HTTP <a href=\"/process-intelligence-apis/subscription-api/get-started/getting-started/#authentication\">Authorization</a> headers as part of your requests.</p>\n<h2 style=\"position:relative;\"><a href=\"#how-can-i-recover-a-failed-subscription\" aria-label=\"how can i recover a failed subscription permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"how-can-i-recover-a-failed-subscription\"></div>How can I recover a failed subscription?</h2>\n<p>It can automatically recover when the destination webhook starts accepting Celonis messages. Alternatively, the consumer can recover the subscription by submitting new callback details (webhook URI or credentials). The failed messages are not lost; they are emitted after the communication is restored (unless the subscription has been configured to skip errors).</p>\n<h2 style=\"position:relative;\"><a href=\"#how-can-i-recover-a-suspended-subscription\" aria-label=\"how can i recover a suspended subscription permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"how-can-i-recover-a-suspended-subscription\"></div>How can I recover a suspended subscription?</h2>\n<p>A suspended subscription can only be recovered by updating the subscription with new callback details. The failed messages are permanently lost.</p>\n<h2 style=\"position:relative;\"><a href=\"#what-can-i-do-to-retrieve-messages-from-a-failing-subscription\" aria-label=\"what can i do to retrieve messages from a failing subscription permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"what-can-i-do-to-retrieve-messages-from-a-failing-subscription\"></div>What can I do to retrieve messages from a failing subscription?</h2>\n<p>There are two ways:</p>\n<ol>\n<li>\nPerforming reconciliation and retrieving synchronously the failed messages (method \n<code class=\"language-text\">PATCH subscriptions/{subscription_id}/events</code>\n).\n</li>\n<li>\nReplaying the messages from the last successful offset (method \n<code class=\"language-text\">PATCH subscriptions/{subscription_id}/replay</code>\n).\n</li>\n</ol>","headings":[{"value":"Frequently Asked Questions (FAQ)","depth":1},{"value":"Requests to Subscription APIs are blocked by the browser CORS policy. What do I do?","depth":2},{"value":"How can I recover a failed subscription?","depth":2},{"value":"How can I recover a suspended subscription?","depth":2},{"value":"What can I do to retrieve messages from a failing subscription?","depth":2}]},"contentItem":{"data":{"lastModified":"2025-01-27T15:25:44.000Z","enableToc":null,"disableLastModified":null,"tocMaxDepth":null,"requestLogin":false}},"siteConfig":{"enableToc":false,"disableLastModified":false,"tocMaxDepth":4}},"pageContext":{"matchPath":"","id":"bcdb94fd-37d4-5bed-a6e2-e12c83e844de__redocly content/process-intelligence-apis/subscription-api/faq/","seo":{"title":"Frequently Asked Questions (FAQ)","description":null,"image":"","keywords":null,"jsonLd":null,"lang":null,"siteUrl":null},"pageId":"process-intelligence-apis/subscription-api/faq.md","pageBaseUrl":"/process-intelligence-apis/subscription-api/faq","type":"markdown","toc":{"enable":true,"maxDepth":4,"headings":[{"depth":1,"value":"Frequently Asked Questions (FAQ)","id":"frequently-asked-questions-faq"},{"depth":2,"value":"Requests to Subscription APIs are blocked by the browser CORS policy. What do I do?","id":"requests-to-subscription-apis-are-blocked-by-the-browser-cors-policy-what-do-i-do"},{"depth":2,"value":"How can I recover a failed subscription?","id":"how-can-i-recover-a-failed-subscription"},{"depth":2,"value":"How can I recover a suspended subscription?","id":"how-can-i-recover-a-suspended-subscription"},{"depth":2,"value":"What can I do to retrieve messages from a failing subscription?","id":"what-can-i-do-to-retrieve-messages-from-a-failing-subscription"}]},"data":{"title":""},"catalogInfo":null,"link":"/process-intelligence-apis/subscription-api/faq/","sidebarName":"celonis","isLanding":false,"showPrevButton":null,"showNextButton":null,"apiVersions":null,"apiVersionId":null,"isDefaultApiVersion":null}},"staticQueryHashes":["1123603147","1302185487","1344209882","1398840060","1520077861","1975142765","2667623876","2950305614","3240152602","3743992808","561138138"]}