Check the HTTP status and the JSON envelope’s code, msg and data. HTTP 200 alone does not mean the business operation succeeded. For asynchronous work, accepting a request also does not mean that the task has completed.
Result
Next step
Authentication or permission failure
Check the credential, selected Space, membership and resource access.
Invalid request
Correct fields using that endpoint’s schema; preserve their types and spelling.
Insufficient credits or plan restriction
Read quota summary and check the plan’s limits before adjusting the request.
Task failure
Inspect its terminal status and error details before using the operation’s retry path.
Rate limit
Honor Retry-After when present and back off.
Timeout or connection loss after submitting work
Query the existing task/project before submitting another generation.
Keys are scoped to the account, Space, HTTP method and URI. A completed identical request replays its recorded response. Reusing the key with different content conflicts. A pending or uncertain request is not automatically executed again. Inspect its project/task before choosing a new key.Without a key, the operation keeps its existing Web retry semantics. Idempotency replay is request history, not current project or credit state.
Omit Idempotency-Key from repeated task-result POST requests and fresh credit checks. Reusing a completed key can replay an old polling response or estimate indefinitely.
Speech/audio task status 3 means success, while project status 3 means processing. Use the status and output guide; do not share one numeric state enum across all task types.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Podcastor","description":"Build audio and video podcasts with the Podcastor API and MCP.","colors":{"primary":"#C33ECF","light":"#C33ECF","dark":"#C33ECF"},"logo":{"light":"https://mintcdn.com/mars-ca923f53/_Q1_h2wshXuBlO8c/logo/light.svg?fit=max\u0026auto=format\u0026n=_Q1_h2wshXuBlO8c\u0026q=85\u0026s=b2b2a52c3f8175f79cd0c184acdca869","dark":"https://mintcdn.com/mars-ca923f53/_Q1_h2wshXuBlO8c/logo/dark.svg?fit=max\u0026auto=format\u0026n=_Q1_h2wshXuBlO8c\u0026q=85\u0026s=c7dda9e4ddebd856fe9902fceb018944","href":"https://podcastor.ai/"},"favicon":"https://mintcdn.com/mars-ca923f53/_Q1_h2wshXuBlO8c/logo/podcastor.png?fit=max\u0026auto=format\u0026n=_Q1_h2wshXuBlO8c\u0026q=85\u0026s=dfbfb0376cc6870db30c9e7721877381","navbar":{"links":[{"href":"mailto:support@podcastor.ai","label":"Support"}],"primary":{"type":"button","label":"Open Podcastor","href":"https://podcastor.ai/"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mars-ca923f53","hasAudioNarration":false,"actualSubdomain":"mars-ca923f53","customDomains":["docs.podcastor.ai"],"gitSource":{"type":"github","owner":"podcastorai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aab536637827d2b22f86e69","collectionId":"28c48173-a63e-49f3-8401-030921586afe","liveDeploymentHistoryId":"6aab536637827d2b22f86e69","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ab3963c6813a05034b424fb","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Documentation","count":70},{"language":"default","tag":"Templates and visual podcasts","count":12},{"language":"default","tag":"Media assets","count":11},{"language":"default","tag":"Avatars","count":9},{"language":"default","tag":"Voices","count":9},{"language":"default","tag":"Projects and scripts","count":8},{"language":"default","tag":"Audio and speech","count":7},{"language":"default","tag":"QuickStart","count":5},{"language":"default","tag":"Account and discovery","count":4},{"language":"default","tag":"Workflow guides","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/quickstart/error-handling","slug":"/api-reference/quickstart/error-handling","pageMetadata":{"title":"Errors and retries","description":"Handle business errors, uncertain requests and duplicate submissions.","href":"/api-reference/quickstart/error-handling"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Handle business errors, uncertain requests and duplicate submissions.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`inspect-both-error-layers`,children:`Inspect both error layers`}),`\n`,_jsxs(_components.p,{children:[`Check the HTTP status and the JSON envelope’s `,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`msg`}),` and `,_jsx(_components.code,{children:`data`}),`. HTTP 200 alone does not mean the business operation succeeded. For asynchronous work, accepting a request also does not mean that the task has completed.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Result`}),_jsx(_components.th,{children:`Next step`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authentication or permission failure`}),_jsx(_components.td,{children:`Check the credential, selected Space, membership and resource access.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Invalid request`}),_jsx(_components.td,{children:`Correct fields using that endpoint’s schema; preserve their types and spelling.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Insufficient credits or plan restriction`}),_jsx(_components.td,{children:`Read quota summary and check the plan’s limits before adjusting the request.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Task failure`}),_jsx(_components.td,{children:`Inspect its terminal status and error details before using the operation’s retry path.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rate limit`}),_jsxs(_components.td,{children:[`Honor `,_jsx(_components.code,{children:`Retry-After`}),` when present and back off.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timeout or connection loss after submitting work`}),_jsx(_components.td,{children:`Query the existing task/project before submitting another generation.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`protect-writes-with-idempotency`,children:`Protect writes with idempotency`}),`\n`,_jsxs(_components.p,{children:[`Send an `,_jsx(_components.code,{children:`Idempotency-Key`}),` of at most 128 characters for a logical write or generation request. Persist the key with the request in your application.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PODCAST_API_ORIGIN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/open/podcast/v1/audio/tasks\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-Api-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PODCAST_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Idempotency-Key: episode-42-audio-v1\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"project_id\":\"PROJECT_ID\"}'`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Keys are scoped to the account, Space, HTTP method and URI. A completed identical request replays its recorded response. Reusing the key with different content conflicts. A pending or uncertain request is not automatically executed again. Inspect its project/task before choosing a new key.`}),`\n`,_jsx(_components.p,{children:`Without a key, the operation keeps its existing Web retry semantics. Idempotency replay is request history, not current project or credit state.`}),`\n`,_jsxs(Warning,{children:[`Omit `,_jsx(_components.code,{children:`Idempotency-Key`}),` from repeated task-result POST requests and fresh credit checks. Reusing a completed key can replay an old polling response or estimate indefinitely.`]}),`\n`,_jsx(Heading,{level:`2`,id:`distinguish-each-task’s-states`,children:`Distinguish each task’s states`}),`\n`,_jsxs(_components.p,{children:[`Speech/audio task status `,_jsx(_components.code,{children:`3`}),` means success, while project status `,_jsx(_components.code,{children:`3`}),` means processing. Use the `,_jsx(_components.a,{href:`/api-reference/guides/polling-and-outputs`,children:`status and output guide`}),`; do not share one numeric state enum across all task types.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Errors and retries","description":"Handle business errors, uncertain requests and duplicate submissions.","href":"/api-reference/quickstart/error-handling"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Inspect both error layers","slug":"inspect-both-error-layers","depth":2,"children":[]},{"title":"Protect writes with idempotency","slug":"protect-writes-with-idempotency","depth":2,"children":[]},{"title":"Distinguish each task’s states","slug":"distinguish-each-task’s-states","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"mars-ca923f53","siteName":"Podcastor","title":"Errors and retries - Podcastor","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-16T03:25:00.109Z","originalFileLocation":"api-reference/quickstart/error-handling.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Handle business errors, uncertain requests and duplicate submissions.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Podcastor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Errors and retries - Podcastor\">\u003cmeta data-mint-head property=\"og:description\" content=\"Handle business errors, uncertain requests and duplicate submissions.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Podcastor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.podcastor.ai/api-reference/quickstart/error-handling\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mars-ca923f53.mintlify.app/_mintlify/api/og/v2?division=QuickStart\u0026amp;title=Errors+and+retries\u0026amp;description=Handle+business+errors%2C+uncertain+requests+and+duplicate+submissions.\u0026amp;theme=135307dac5e57a743924761a\u0026amp;signature=4972361a8665f52a6bb9e8a45c0afffb25ef3ffc9e1475e59a6ff0d3c1791bb9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Errors and retries - Podcastor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Handle business errors, uncertain requests and duplicate submissions.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mars-ca923f53.mintlify.app/_mintlify/api/og/v2?division=QuickStart\u0026amp;title=Errors+and+retries\u0026amp;description=Handle+business+errors%2C+uncertain+requests+and+duplicate+submissions.\u0026amp;theme=135307dac5e57a743924761a\u0026amp;signature=4972361a8665f52a6bb9e8a45c0afffb25ef3ffc9e1475e59a6ff0d3c1791bb9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/mars-ca923f53/vfauXuQxMuEIO8MC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Podcastor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C33ECF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.podcastor.ai/api-reference/quickstart/error-handling\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/quickstart/error-handling.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.podcastor.ai/#organization\",\"name\":\"Podcastor\",\"url\":\"https://docs.podcastor.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mars-ca923f53/_Q1_h2wshXuBlO8c/logo/light.svg?fit=max\u0026auto=format\u0026n=_Q1_h2wshXuBlO8c\u0026q=85\u0026s=b2b2a52c3f8175f79cd0c184acdca869\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.podcastor.ai#website\",\"name\":\"Podcastor\",\"url\":\"https://docs.podcastor.ai\",\"publisher\":{\"@id\":\"https://docs.podcastor.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling#webpage\",\"url\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling\",\"name\":\"Errors and retries\",\"description\":\"Handle business errors, uncertain requests and duplicate submissions.\",\"dateModified\":\"2026-09-16T03:25:00.109Z\",\"isPartOf\":{\"@id\":\"https://docs.podcastor.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"QuickStart\",\"item\":\"https://docs.podcastor.ai/api-reference/quickstart/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Errors and retries\",\"item\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling#article\",\"headline\":\"Errors and retries\",\"name\":\"Errors and retries\",\"description\":\"Handle business errors, uncertain requests and duplicate submissions.\",\"url\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling\",\"mainEntityOfPage\":{\"@id\":\"https://docs.podcastor.ai/api-reference/quickstart/error-handling#webpage\"},\"dateModified\":\"2026-09-16T03:25:00.109Z\",\"publisher\":{\"@id\":\"https://docs.podcastor.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.podcastor.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Podcastor\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Podcastor","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home/welcome"}]},{"tab":"API Documentation","groups":[{"group":"QuickStart","pages":[{"title":"Getting started","href":"/api-reference/quickstart/getting-started"},{"title":"Authentication","href":"/api-reference/quickstart/authentication"},{"title":"Pricing and credits","description":"Use your existing Podcastor subscription across Web, API and MCP.","href":"/api-reference/quickstart/pricing"},{"title":"Errors and retries","href":"/api-reference/quickstart/error-handling"},{"title":"Rate limits","description":"Control polling and generation concurrency without duplicating work.","href":"/api-reference/quickstart/rate-limits"}]},{"group":"Workflow guides","pages":[{"title":"Create a podcast","href":"/api-reference/guides/create-a-podcast"},{"title":"Assets and hosts","href":"/api-reference/guides/assets-and-hosts"},{"title":"Polling and outputs","href":"/api-reference/guides/polling-and-outputs"}]},{"group":"Account and discovery","pages":[{"title":"Account context","openapi":"api-reference/openapi.json GET /open/podcast/v1/account/context","href":"/api-reference/account/account-context"},{"title":"Quota summary","openapi":"api-reference/openapi.json GET /open/podcast/v1/quota/summary","href":"/api-reference/account/quota-summary"},{"title":"Capabilities","openapi":"api-reference/openapi.json GET /open/podcast/v1/capabilities","href":"/api-reference/account/capabilities"},{"title":"Catalog","openapi":"api-reference/openapi.json GET /open/podcast/v1/catalogs/{kind}","href":"/api-reference/account/catalog"}]},{"group":"Projects and scripts","pages":[{"title":"Create project","openapi":"api-reference/openapi.json POST /open/podcast/v1/projects","href":"/api-reference/projects/create-project"},{"title":"Regenerate script","openapi":"api-reference/openapi.json PUT /open/podcast/v1/projects","href":"/api-reference/projects/regenerate-script"},{"title":"List projects","openapi":"api-reference/openapi.json GET /open/podcast/v1/projects","href":"/api-reference/projects/list-projects"},{"title":"Get project","openapi":"api-reference/openapi.json GET /open/podcast/v1/project","href":"/api-reference/projects/get-project"},{"title":"Get settings","openapi":"api-reference/openapi.json GET /open/podcast/v1/project/settings","href":"/api-reference/projects/get-settings"},{"title":"Save project","openapi":"api-reference/openapi.json POST /open/podcast/v1/project/settings","href":"/api-reference/projects/save-project"},{"title":"Rename project","openapi":"api-reference/openapi.json PUT /open/podcast/v1/project/title","href":"/api-reference/projects/rename-project"},{"title":"Copy project","openapi":"api-reference/openapi.json POST /open/podcast/v1/project/copy","href":"/api-reference/projects/copy-project"}]},{"group":"Audio and speech","pages":[{"title":"Prepare audio","openapi":"api-reference/openapi.json POST /open/podcast/v1/audio/tasks","href":"/api-reference/audio/prepare-audio"},{"title":"Get audio task","openapi":"api-reference/openapi.json POST /open/podcast/v1/audio/tasks/result","href":"/api-reference/audio/get-audio-task"},{"title":"Redo speech","openapi":"api-reference/openapi.json POST /open/podcast/v1/speech/tasks","href":"/api-reference/audio/redo-speech"},{"title":"Get speech task","openapi":"api-reference/openapi.json POST /open/podcast/v1/speech/tasks/result","href":"/api-reference/audio/get-speech-task"},{"title":"Concat audio","openapi":"api-reference/openapi.json POST /open/podcast/v1/audio/concat","href":"/api-reference/audio/concat-audio"},{"title":"Download audio","openapi":"api-reference/openapi.json POST /open/podcast/v1/audio/download/{id}","href":"/api-reference/audio/download-audio"},{"title":"Export subtitles","openapi":"api-reference/openapi.json POST /open/podcast/v1/subtitles/export","href":"/api-reference/audio/export-subtitles"}]},{"group":"Rendering","pages":[{"title":"Render credit check","openapi":"api-reference/openapi.json POST /open/podcast/v1/render/credit_check","href":"/api-reference/rendering/render-credit-check"},{"title":"Render","openapi":"api-reference/openapi.json POST /open/podcast/v1/render","href":"/api-reference/rendering/render"}]},{"group":"Voices","pages":[{"title":"List voices","openapi":"api-reference/openapi.json GET /open/podcast/v1/voices","href":"/api-reference/voices/list-voices"},{"title":"List user voices","openapi":"api-reference/openapi.json GET /open/podcast/v1/voices/custom","href":"/api-reference/voices/list-user-voices"},{"title":"Get voice","openapi":"api-reference/openapi.json GET /open/podcast/v1/voice","href":"/api-reference/voices/get-voice"},{"title":"Voice labels","openapi":"api-reference/openapi.json GET /open/podcast/v1/voices/labels","href":"/api-reference/voices/voice-labels"},{"title":"List elevenlabs voices","openapi":"api-reference/openapi.json GET /open/podcast/v1/voices/elevenlabs","href":"/api-reference/voices/list-elevenlabs-voices"},{"title":"Elevenlabs labels","openapi":"api-reference/openapi.json GET /open/podcast/v1/voices/elevenlabs/labels","href":"/api-reference/voices/elevenlabs-labels"},{"title":"Save elevenlabs voice","openapi":"api-reference/openapi.json POST /open/podcast/v1/voices/elevenlabs","href":"/api-reference/voices/save-elevenlabs-voice"},{"title":"Clone voice","openapi":"api-reference/openapi.json POST /open/podcast/v1/voices/clone","href":"/api-reference/voices/clone-voice"},{"title":"Voice clone allowance","openapi":"api-reference/openapi.json GET /open/podcast/v1/voices/clone/allowance","href":"/api-reference/voices/voice-clone-allowance"}]},{"group":"Avatars","pages":[{"title":"List avatars","openapi":"api-reference/openapi.json GET /open/podcast/v1/avatars","href":"/api-reference/avatars/list-avatars"},{"title":"Create avatar","openapi":"api-reference/openapi.json POST /open/podcast/v1/avatars","href":"/api-reference/avatars/create-avatar"},{"title":"Create multi camera avatar","openapi":"api-reference/openapi.json POST /open/podcast/v1/avatars/multi_camera","href":"/api-reference/avatars/create-multi-camera-avatar"},{"title":"Get avatar","openapi":"api-reference/openapi.json GET /open/podcast/v1/avatar","href":"/api-reference/avatars/get-avatar"},{"title":"Get avatar draft","openapi":"api-reference/openapi.json GET /open/podcast/v1/avatar/draft","href":"/api-reference/avatars/get-avatar-draft"},{"title":"More avatar photos","openapi":"api-reference/openapi.json POST /open/podcast/v1/avatar/photos","href":"/api-reference/avatars/more-avatar-photos"},{"title":"Generate avatar motion","openapi":"api-reference/openapi.json POST /open/podcast/v1/avatar/motion","href":"/api-reference/avatars/generate-avatar-motion"},{"title":"Rename avatar","openapi":"api-reference/openapi.json POST /open/podcast/v1/avatar/rename","href":"/api-reference/avatars/rename-avatar"},{"title":"Query avatar info","openapi":"api-reference/openapi.json POST /open/podcast/v1/avatars/info","href":"/api-reference/avatars/query-avatar-info"}]},{"group":"Media assets","pages":[{"title":"Upload asset","openapi":"api-reference/openapi.json POST /open/podcast/v1/upload/asset","href":"/api-reference/assets/upload-asset"},{"title":"List music","openapi":"api-reference/openapi.json GET /open/podcast/v1/music","href":"/api-reference/assets/list-music"},{"title":"List user music","openapi":"api-reference/openapi.json GET /open/podcast/v1/music/custom","href":"/api-reference/assets/list-user-music"},{"title":"Add music","openapi":"api-reference/openapi.json POST /open/podcast/v1/music","href":"/api-reference/assets/add-music"},{"title":"List backgrounds","openapi":"api-reference/openapi.json GET /open/podcast/v1/backgrounds","href":"/api-reference/assets/list-backgrounds"},{"title":"Add background","openapi":"api-reference/openapi.json POST /open/podcast/v1/backgrounds","href":"/api-reference/assets/add-background"},{"title":"Generate background","openapi":"api-reference/openapi.json POST /open/podcast/v1/backgrounds/generate","href":"/api-reference/assets/generate-background"},{"title":"Regenerate background","openapi":"api-reference/openapi.json POST /open/podcast/v1/backgrounds/regenerate","href":"/api-reference/assets/regenerate-background"},{"title":"Generate image","openapi":"api-reference/openapi.json POST /open/podcast/v1/images/generate","href":"/api-reference/assets/generate-image"},{"title":"Generate image background","openapi":"api-reference/openapi.json POST /open/podcast/v1/image_backgrounds/generate","href":"/api-reference/assets/generate-image-background"},{"title":"Get image task","openapi":"api-reference/openapi.json GET /open/podcast/v1/images/task","href":"/api-reference/assets/get-image-task"}]},{"group":"Templates and visual podcasts","pages":[{"title":"List templates","openapi":"api-reference/openapi.json GET /open/podcast/v1/templates","href":"/api-reference/templates/list-templates"},{"title":"List image templates","openapi":"api-reference/openapi.json GET /open/podcast/v1/image_templates","href":"/api-reference/templates/list-image-templates"},{"title":"Create image template","openapi":"api-reference/openapi.json POST /open/podcast/v1/image_templates","href":"/api-reference/templates/create-image-template"},{"title":"Update image template","openapi":"api-reference/openapi.json PUT /open/podcast/v1/image_templates","href":"/api-reference/templates/update-image-template"},{"title":"Copy image template","openapi":"api-reference/openapi.json POST /open/podcast/v1/image_templates/copy","href":"/api-reference/templates/copy-image-template"},{"title":"List image backgrounds","openapi":"api-reference/openapi.json GET /open/podcast/v1/image_backgrounds","href":"/api-reference/templates/list-image-backgrounds"},{"title":"Add image background","openapi":"api-reference/openapi.json POST /open/podcast/v1/image_backgrounds","href":"/api-reference/templates/add-image-background"},{"title":"List images","openapi":"api-reference/openapi.json GET /open/podcast/v1/images","href":"/api-reference/templates/list-images"},{"title":"Add image","openapi":"api-reference/openapi.json POST /open/podcast/v1/images","href":"/api-reference/templates/add-image"},{"title":"List waveforms","openapi":"api-reference/openapi.json GET /open/podcast/v1/waveforms","href":"/api-reference/templates/list-waveforms"},{"title":"Add waveform","openapi":"api-reference/openapi.json POST /open/podcast/v1/waveforms","href":"/api-reference/templates/add-waveform"},{"title":"Update waveform","openapi":"api-reference/openapi.json PUT /open/podcast/v1/waveforms","href":"/api-reference/templates/update-waveform"}]}]}]},"title":"Errors and retries - Podcastor","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}