429 and 5xx responses are retried up to maxRetries times with exponential backoff, honoring Retry-After (capped at 60 seconds).
Camera and capture errors are never retried automatically.
In workflows, Try again on an error screen continues from the current step.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"deepidv","colors":{"primary":"#1E7FE0","light":"#22B8F0","dark":"#1456A0"},"logo":{"light":"https://mintcdn.com/deep-identity-inc/iEa1biN40aTilpTP/logo/logo-full-black.svg?fit=max\u0026auto=format\u0026n=iEa1biN40aTilpTP\u0026q=85\u0026s=a577cb0e581db37558215bbd72f08dc6","dark":"https://mintcdn.com/deep-identity-inc/iEa1biN40aTilpTP/logo/logo-full-white.svg?fit=max\u0026auto=format\u0026n=iEa1biN40aTilpTP\u0026q=85\u0026s=b496e0504aeac4cc1b4e3fa2b5672d3e"},"favicon":"https://mintcdn.com/deep-identity-inc/iEa1biN40aTilpTP/logo/favicon.svg?fit=max\u0026auto=format\u0026n=iEa1biN40aTilpTP\u0026q=85\u0026s=317a65c523baba0dd43be8939720010d","api":{"mdx":{"server":"https://api.deepidv.com"}},"navbar":{"links":[{"href":"mailto:support@deepidv.com","label":"Support"}],"primary":{"type":"button","label":"Admin Console","href":"https://app.deepidv.com"}},"footer":{"socials":{"x":"https://x.com/deepidv","linkedin":"https://linkedin.com/company/deepidv"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","claude","chatgpt","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"API Reference","icon":"code","href":"/api-reference/sessions/create-session"},{"anchor":"Admin Console","icon":"layout-grid","href":"https://app.deepidv.com"},{"anchor":"Agent Skills","icon":"bot","href":"https://github.com/Deep-Identity-Inc/agent-skills"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"deep-identity-inc","hasAudioNarration":false,"actualSubdomain":"deep-identity-inc","customDomains":["docs.deepidv.com"],"gitSource":{"type":"github","owner":"deep-identity-inc","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af42bf90b89564432bc6ac2","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":47},{"language":"default","tag":"Integrate / SDKs","count":44},{"language":"default","tag":"iOS","count":30},{"language":"default","tag":"Get Started","count":17},{"language":"default","tag":"Chain Layer","count":12},{"language":"default","tag":"TypeScript","count":11},{"language":"default","tag":"iGaming Self-Exclusion \u0026 Management","count":8},{"language":"default","tag":"Server SDK","count":7},{"language":"default","tag":"Server-to-Server","count":6},{"language":"default","tag":"Workflow Runner","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".deepidv-section-header{display:flex;flex-direction:column;gap:4px;margin-top:2rem;margin-bottom:1.5rem}.deepidv-section-label{font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#1E7FE0;margin:0}.deepidv-section-title{font-size:1.75rem;font-weight:700;line-height:1.2;margin:0}.deepidv-section-title span{color:#1E7FE0}.deepidv-section-desc{font-size:1rem;color:#6B7280;margin:0.25rem 0 0 0}.deepidv-feature-grid{display:grid;grid-template-columns:repeat(var(--grid-cols, 3), 1fr);gap:1rem;margin-top:1rem;margin-bottom:1rem}@media (max-width: 768px){.deepidv-feature-grid{grid-template-columns:1fr}}.deepidv-feature-card{display:flex;flex-direction:column;gap:0.75rem;padding:1.25rem;border:1px solid #E5E7EB;border-radius:12px;background:#ffffff;transition:border-color 0.15s ease, box-shadow 0.15s ease;height:100%}:root.dark .deepidv-feature-card{background:#1a1a2e;border-color:#2d2d44}.deepidv-feature-card:hover{border-color:#1E7FE0;box-shadow:0 2px 8px rgba(30, 127, 224, 0.08)}.deepidv-feature-card-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#1E7FE0;flex-shrink:0}.deepidv-feature-card-content{display:flex;flex-direction:column;gap:0.25rem}.deepidv-feature-card-title{font-size:0.9rem;font-weight:600;margin:0;line-height:1.3}.deepidv-feature-card-desc{font-size:0.825rem;color:#6B7280;margin:0;line-height:1.5}:root.dark .deepidv-feature-card-desc{color:#9CA3AF}.deepidv-feature-card-arrow{margin-top:auto;color:#1E7FE0;opacity:0;transition:opacity 0.15s ease}.deepidv-feature-card:hover .deepidv-feature-card-arrow{opacity:1}.deepidv-video-embed{position:relative;width:100%;padding-bottom:56.25%;margin:1.5rem 0;border-radius:12px;overflow:hidden;background:#000}.deepidv-video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:12px}"}],"page":{"pagePath":"integrate/sdks/ios/reference/errors","slug":"/integrate/sdks/ios/reference/errors","pageMetadata":{"title":"Errors","description":"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.","href":"/integrate/sdks/ios/reference/errors"},"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: \"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.\"\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`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every error the SDK reports is a `,_jsx(_components.code,{children:`DeepIDVError`}),`. Branch on `,_jsx(_components.code,{children:`kind`}),` for the class of error and on `,_jsx(_components.code,{children:`apiCode`}),` for the exact server reason.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`swift`,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:`swift`,children:_jsxs(_components.code,{language:`swift`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`case`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`failure`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` error)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` switch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` error.kind {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cancelled`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` break`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`network`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, .`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`timeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` offerRetryLater`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`conflict`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` where`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` error.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`apiCode`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sessionTerminal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` showAlreadyFinished`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` report`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(error) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// log error.kind, error.code, error.apiCode`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Kind`}),` can gain cases in future releases. In Swift 6, a `,_jsx(_components.code,{children:`switch`}),` over it needs a `,_jsx(_components.code,{children:`default`}),` (or `,_jsx(_components.code,{children:`@unknown default`}),`) branch.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`deepidverror`,children:_jsx(_components.code,{children:`DeepIDVError`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Property`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`kind`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Kind`})}),_jsx(_components.td,{children:`The class of error (below).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`apiCode`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`APIErrorCode?`})}),_jsx(_components.td,{children:`The server’s reason, when it gave one (below).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`code`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`String?`})}),_jsxs(_components.td,{children:[`A stable string for the kind, such as `,_jsx(_components.code,{children:`\"validation_error\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`status`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Int?`})}),_jsx(_components.td,{children:`The HTTP status, for server errors.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`retryAfter`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`TimeInterval?`})}),_jsxs(_components.td,{children:[`Seconds to wait, from `,_jsx(_components.code,{children:`Retry-After`}),` on a `,_jsx(_components.code,{children:`429`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`conflict`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ConflictInfo?`})}),_jsxs(_components.td,{children:[`For `,_jsx(_components.code,{children:`.conflict`}),`: the session’s current step and why.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`message`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`String`})}),_jsx(_components.td,{children:`For logs only. It can contain raw server text: never show it to users.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`kinds`,children:`Kinds`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Kind`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`What the user sees`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.cancelled`})}),_jsx(_components.td,{children:`The user closed the view.`}),_jsx(_components.td,{children:`Nothing more.`}),_jsx(_components.td,{children:`Return to your screen. Not an error to report.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.cameraPermissionDenied`})}),_jsx(_components.td,{children:`Camera access is off.`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Camera access is off`}),`, with `,_jsx(_components.strong,{children:`Open Settings`}),`.`]}),_jsx(_components.td,{children:`Explain why you need the camera.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.captureFailed`})}),_jsx(_components.td,{children:`The camera couldn’t start or take a photo.`}),_jsx(_components.td,{children:`An error screen.`}),_jsx(_components.td,{children:`Let the user try again; check another app isn’t using the camera.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.network`})}),_jsx(_components.td,{children:`No connection, or it dropped.`}),_jsxs(_components.td,{children:[`An error screen with `,_jsx(_components.strong,{children:`Try again`}),` in workflows.`]}),_jsx(_components.td,{children:`Retry later.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.timeout`})}),_jsx(_components.td,{children:`A request took too long.`}),_jsxs(_components.td,{children:[`As `,_jsx(_components.code,{children:`.network`}),`.`]}),_jsx(_components.td,{children:`Retry later.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.rateLimit`})}),_jsxs(_components.td,{children:[`Too many requests (`,_jsx(_components.code,{children:`429`}),`), after the SDK’s retries.`]}),_jsx(_components.td,{children:`An error screen.`}),_jsxs(_components.td,{children:[`Wait `,_jsx(_components.code,{children:`retryAfter`}),`, then retry.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.serviceUnavailable`})}),_jsxs(_components.td,{children:[`deepidv is temporarily unavailable (`,_jsx(_components.code,{children:`503`}),`).`]}),_jsxs(_components.td,{children:[`An error screen with `,_jsx(_components.strong,{children:`Try again`}),`.`]}),_jsx(_components.td,{children:`Retry later.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.api`})}),_jsxs(_components.td,{children:[`Any other HTTP error, usually a `,_jsx(_components.code,{children:`5xx`}),`. `,_jsx(_components.code,{children:`status`}),` has the code.`]}),_jsxs(_components.td,{children:[`An error screen with `,_jsx(_components.strong,{children:`Try again`}),`.`]}),_jsx(_components.td,{children:`Retry later; contact support if it persists.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.authentication`})}),_jsxs(_components.td,{children:[`The key or token was rejected (`,_jsx(_components.code,{children:`401`}),`).`]}),_jsx(_components.td,{children:`An error screen.`}),_jsx(_components.td,{children:`Check your proxy and key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.authorization`})}),_jsxs(_components.td,{children:[`Not allowed (`,_jsx(_components.code,{children:`403`}),`).`]}),_jsx(_components.td,{children:`An error screen.`}),_jsx(_components.td,{children:`Check the key’s permissions, or your proxy’s ownership check.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.notFound`})}),_jsxs(_components.td,{children:[`The session, workflow or other resource doesn’t exist (`,_jsx(_components.code,{children:`404`}),`).`]}),_jsx(_components.td,{children:`An error screen.`}),_jsx(_components.td,{children:`Check the IDs, and that they belong to the key’s organization.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.validation`})}),_jsxs(_components.td,{children:[`The request was invalid (`,_jsx(_components.code,{children:`400`}),`), or the workflow has a step the SDK can’t run.`]}),_jsx(_components.td,{children:`An error screen.`}),_jsxs(_components.td,{children:[`Check `,_jsx(_components.code,{children:`apiCode`}),`; fix the input.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.conflict`})}),_jsxs(_components.td,{children:[`The session’s state doesn’t allow this (`,_jsx(_components.code,{children:`409`}),`).`]}),_jsx(_components.td,{children:`An error screen.`}),_jsxs(_components.td,{children:[`Check `,_jsx(_components.code,{children:`apiCode`}),` and `,_jsx(_components.code,{children:`conflict`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.insufficientFunds`})}),_jsxs(_components.td,{children:[`Your balance can’t cover the check (`,_jsx(_components.code,{children:`402`}),`).`]}),_jsx(_components.td,{children:`An error screen.`}),_jsx(_components.td,{children:`Top up in the Admin Console.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.antiCheatBlocked`})}),_jsxs(_components.td,{children:[`The anti-cheat check in `,_jsx(_components.code,{children:`DeepIDVVerificationView`}),` returned `,_jsx(_components.code,{children:`block`}),`.`]}),_jsx(_components.td,{children:`—`}),_jsxs(_components.td,{children:[`End the signup. See `,_jsx(_components.a,{href:`/integrate/sdks/ios/headless/igaming`,children:`iGaming`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`api-error-codes`,children:`API error codes`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`apiCode`}),` is set when the server explains a refusal. It’s an open set: compare against these constants and keep a `,_jsx(_components.code,{children:`default`}),` branch.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`APIErrorCode`})}),_jsx(_components.th,{children:`Raw value`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.validationError`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`VALIDATION_ERROR`})}),_jsx(_components.td,{children:`The request body was invalid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.workflowInactive`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`WORKFLOW_INACTIVE`})}),_jsx(_components.td,{children:`The workflow is turned off.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.unsupportedWorkflowSteps`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNSUPPORTED_WORKFLOW_STEPS`})}),_jsx(_components.td,{children:`The workflow has steps this API can’t run.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.invalidUploadKey`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_UPLOAD_KEY`})}),_jsx(_components.td,{children:`An upload key doesn’t belong to this session.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.invalidMedia`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_MEDIA`})}),_jsx(_components.td,{children:`A photo couldn’t be used (format or content).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.uploadSlotNotRequired`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UPLOAD_SLOT_NOT_REQUIRED`})}),_jsx(_components.td,{children:`A photo was sent for a slot the step doesn’t need.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.insufficientFunds`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INSUFFICIENT_FUNDS`})}),_jsx(_components.td,{children:`The balance can’t cover the check.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.forbidden`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`FORBIDDEN`})}),_jsx(_components.td,{children:`The key can’t do this.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.organizationNotFound`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ORGANIZATION_NOT_FOUND`})}),_jsx(_components.td,{children:`No organization for this key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.workflowNotFound`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`WORKFLOW_NOT_FOUND`})}),_jsx(_components.td,{children:`The workflow doesn’t exist for this organization.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.sessionNotFound`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`SESSION_NOT_FOUND`})}),_jsx(_components.td,{children:`The session doesn’t exist for this organization.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.executionStateNotFound`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`EXECUTION_STATE_NOT_FOUND`})}),_jsx(_components.td,{children:`The session has no workflow state.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.stepNotFound`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STEP_NOT_FOUND`})}),_jsx(_components.td,{children:`The step isn’t in this workflow.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.sessionTerminal`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`SESSION_TERMINAL`})}),_jsx(_components.td,{children:`The session is finished.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.sessionAlreadyStarted`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`SESSION_ALREADY_STARTED`})}),_jsx(_components.td,{children:`The session was already started; resume it instead.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.noActiveStep`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`NO_ACTIVE_STEP`})}),_jsx(_components.td,{children:`The session has no current step.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.stepOutOfOrder`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STEP_OUT_OF_ORDER`})}),_jsx(_components.td,{children:`This step isn’t the current one.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.stepNotSubmittable`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STEP_NOT_SUBMITTABLE`})}),_jsx(_components.td,{children:`The step can’t take a submission now.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.stepConflict`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STEP_CONFLICT`})}),_jsx(_components.td,{children:`Another submission for this step is in progress.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.livenessNotStarted`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`LIVENESS_NOT_STARTED`})}),_jsx(_components.td,{children:`Liveness wasn’t started before completion.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.livenessResultNotReady`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`LIVENESS_RESULT_NOT_READY`})}),_jsx(_components.td,{children:`The liveness score isn’t ready yet.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.livenessUploadIncomplete`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`LIVENESS_UPLOAD_INCOMPLETE`})}),_jsx(_components.td,{children:`Not all liveness frames arrived.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.stepNotRunnable`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STEP_NOT_RUNNABLE`})}),_jsx(_components.td,{children:`The step can’t run in this session.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`.internalError`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INTERNAL_ERROR`})}),_jsx(_components.td,{children:`A server error.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`retries-the-sdk-already-does`,children:`Retries the SDK already does`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`429`}),` and `,_jsx(_components.code,{children:`5xx`}),` responses are retried up to `,_jsx(_components.code,{children:`maxRetries`}),` times with exponential backoff, honoring `,_jsx(_components.code,{children:`Retry-After`}),` (capped at 60 seconds).`]}),`\n`,_jsx(_components.li,{children:`Camera and capture errors are never retried automatically.`}),`\n`,_jsxs(_components.li,{children:[`In workflows, `,_jsx(_components.strong,{children:`Try again`}),` on an error screen continues from the current step.`]}),`\n`]})]})}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","description":"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.","href":"/integrate/sdks/ios/reference/errors"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"DeepIDVError","slug":"deepidverror","depth":2,"children":[]},{"title":"Kinds","slug":"kinds","depth":2,"children":[]},{"title":"API error codes","slug":"api-error-codes","depth":2,"children":[]},{"title":"Retries the SDK already does","slug":"retries-the-sdk-already-does","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"deep-identity-inc","siteName":"deepidv","title":"Errors - deepidv","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T07:53:54.891Z","originalFileLocation":"integrate/sdks/ios/reference/errors.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=\"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.\">\u003cmeta data-mint-head name=\"application-name\" content=\"deepidv\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_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/deep-identity-inc/VE_UqkkNisu8ZSTI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Errors - deepidv\">\u003cmeta data-mint-head property=\"og:description\" content=\"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"deepidv\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://deep-identity-inc.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=Errors\u0026amp;description=DeepIDVError+in+the+iOS+SDK%3A+every+error+kind+and+API+error+code%2C+what+it+means%2C+what+the+user+sees%2C+and+what+your+app+should+do.\u0026amp;theme=ec3121d7e676aa7b1bdfb442\u0026amp;signature=e68ffd5721b497bb0cef50798da957aca352f36ea5369ade0440e746d913c45f\">\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 - deepidv\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://deep-identity-inc.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=Errors\u0026amp;description=DeepIDVError+in+the+iOS+SDK%3A+every+error+kind+and+API+error+code%2C+what+it+means%2C+what+the+user+sees%2C+and+what+your+app+should+do.\u0026amp;theme=ec3121d7e676aa7b1bdfb442\u0026amp;signature=e68ffd5721b497bb0cef50798da957aca352f36ea5369ade0440e746d913c45f\">\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/deep-identity-inc/VE_UqkkNisu8ZSTI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"deepidv\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1E7FE0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrate/sdks/ios/reference/errors.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.deepidv.com/#organization\",\"name\":\"deepidv\",\"url\":\"https://docs.deepidv.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/deep-identity-inc/iEa1biN40aTilpTP/logo/logo-full-black.svg?fit=max\u0026auto=format\u0026n=iEa1biN40aTilpTP\u0026q=85\u0026s=a577cb0e581db37558215bbd72f08dc6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.deepidv.com#website\",\"name\":\"deepidv\",\"url\":\"https://docs.deepidv.com\",\"publisher\":{\"@id\":\"https://docs.deepidv.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors#webpage\",\"url\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors\",\"name\":\"Errors\",\"description\":\"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.\",\"dateModified\":\"2026-11-11T07:53:54.891Z\",\"isPartOf\":{\"@id\":\"https://docs.deepidv.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"iOS\",\"item\":\"https://docs.deepidv.com/integrate/sdks/ios/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reference\",\"item\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/configuration\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Errors\",\"item\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors#article\",\"headline\":\"Errors\",\"name\":\"Errors\",\"description\":\"DeepIDVError in the iOS SDK: every error kind and API error code, what it means, what the user sees, and what your app should do.\",\"url\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors\",\"mainEntityOfPage\":{\"@id\":\"https://docs.deepidv.com/integrate/sdks/ios/reference/errors#webpage\"},\"dateModified\":\"2026-11-11T07:53:54.891Z\",\"publisher\":{\"@id\":\"https://docs.deepidv.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.deepidv.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"deepidv\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"deepidv\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/integrate/sdks/ios/reference/errors.md","siteName":"deepidv","nav":{"global":{"anchors":[{"anchor":"API Reference","icon":"code","href":"/api-reference/sessions/create-session"},{"anchor":"Admin Console","icon":"layout-grid","href":"https://app.deepidv.com"},{"anchor":"Agent Skills","icon":"bot","href":"https://github.com/Deep-Identity-Inc/agent-skills"}]},"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/introduction"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/openapi-spec"}]},{"tab":"Integrate / SDKs","groups":[{"group":"Guides","pages":[{"title":"AI Agent Integration (MCP Server)","href":"/integrate/ai-agent-integration"},{"title":"Identity Verification Skill","href":"/integrate/verify-skill"},{"title":"deepAI Assistant Skill","href":"/integrate/deepai-assistant-skill"}]},{"group":"TypeScript","pages":[{"group":"Server SDK","pages":[{"title":"Server SDK Overview","href":"/integrate/sdks/typescript/server/overview"},{"title":"Quickstart","href":"/integrate/sdks/typescript/server/quickstart"},{"title":"Authentication","href":"/integrate/sdks/typescript/server/authentication"},{"title":"Configuration","href":"/integrate/sdks/typescript/server/configuration"},{"title":"Session Verification","href":"/integrate/sdks/typescript/server/session-verification"},{"title":"Server-to-Server","href":"/integrate/sdks/typescript/server/server-to-server"},{"title":"Error Handling","href":"/integrate/sdks/typescript/server/error-handling"}]},{"group":"Server SDK Reference","pages":[{"title":"Reference: Sessions","href":"/integrate/sdks/typescript/server/reference/sessions"},{"title":"Reference: Document, Face \u0026 Identity","href":"/integrate/sdks/typescript/server/reference/document-face-identity"},{"title":"Reference: Screening","href":"/integrate/sdks/typescript/server/reference/screening"},{"title":"Reference: Async Jobs \u0026 Events","href":"/integrate/sdks/typescript/server/reference/async-jobs-events"}]}]},{"group":"iOS","icon":"apple","pages":[{"group":"Get started","pages":[{"title":"iOS SDK overview","href":"/integrate/sdks/ios/overview"},{"title":"Quickstart","href":"/integrate/sdks/ios/quickstart"},{"title":"Installation","href":"/integrate/sdks/ios/installation"},{"title":"Choose an integration","href":"/integrate/sdks/ios/choose-an-integration"},{"title":"Build with AI","href":"/integrate/sdks/ios/ai-agents"}]},{"group":"Workflows","pages":[{"title":"Run a workflow","href":"/integrate/sdks/ios/workflows/run-a-workflow"},{"title":"Resuming a session","href":"/integrate/sdks/ios/workflows/resuming"},{"title":"Results and the decision","href":"/integrate/sdks/ios/workflows/results"},{"title":"Failures and retries","href":"/integrate/sdks/ios/workflows/failures"}]},{"group":"Components","pages":[{"title":"Document capture","href":"/integrate/sdks/ios/document-capture"},{"title":"Document capture: screens and states","href":"/integrate/sdks/ios/document-capture-screens"},{"title":"Selfie","href":"/integrate/sdks/ios/selfie"},{"title":"Face liveness","href":"/integrate/sdks/ios/face-liveness"},{"title":"Re-verification","href":"/integrate/sdks/ios/re-verification"},{"title":"Drop-in verification","href":"/integrate/sdks/ios/drop-in-verification"}]},{"group":"Headless API","pages":[{"title":"Document scan and identity verify","href":"/integrate/sdks/ios/headless/document-and-identity"},{"title":"Liveness with your own camera","href":"/integrate/sdks/ios/headless/liveness"},{"title":"iGaming checks","href":"/integrate/sdks/ios/headless/igaming"}]},{"group":"Customize","pages":[{"title":"Branding","href":"/integrate/sdks/ios/branding"},{"title":"Languages","href":"/integrate/sdks/ios/languages"},{"title":"Camera","href":"/integrate/sdks/ios/camera"}]},{"group":"Production","pages":[{"title":"Security and API keys","href":"/integrate/sdks/ios/security-and-api-keys"},{"title":"Proxy mode","href":"/integrate/sdks/ios/proxy-mode"},{"title":"Privacy","href":"/integrate/sdks/ios/privacy"},{"title":"Troubleshooting","href":"/integrate/sdks/ios/troubleshooting"}]},{"group":"Reference","pages":[{"title":"Configuration","description":"Every DeepIDVConfig option in the iOS SDK, with its type and default.","href":"/integrate/sdks/ios/reference/configuration"},{"title":"Errors","href":"/integrate/sdks/ios/reference/errors"},{"title":"Results","description":"Every result type the iOS SDK returns, which call returns it, and the confidence scale each uses.","href":"/integrate/sdks/ios/reference/results"},{"title":"Changelog","href":"/integrate/sdks/ios/reference/changelog"},{"title":"Migrating to 1.3","href":"/integrate/sdks/ios/reference/migrating-to-1-3"}]}]}]},{"tab":"Chain Layer","pages":[{"title":"Chain Layer","href":"/chain-layer/overview"}]},{"tab":"Workflow Builder","pages":[{"title":"Workflow Builder","href":"/workflow-builder"}]}]},"basePath":"","title":"Errors - deepidv","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}