docusealco/docuseal · error · Error
KBA Start Failed
Error message
KBA Start Failed
What it means
Catch-all for a KBA start that failed at the provider level: result.action === 'FAIL' with detail missing or anything other than 'NO MATCH'. The provider returned a structured failure (for example questions unavailable, account misprovisioned, policy refusal) and detail, when present, carries the provider's reason string. The generic 'KBA Start Failed' message means detail was empty.
Solutions
- Capture and surface data.result.detail (in logs or the thrown message) - it is the provider's stated reason.
- Check the KBA account status and entitlements for the environment behind baseUrl.
- Retry once for transient provider degradation; persistent FAIL indicates configuration.
- Compare the start payload against the provider's current API schema for newly required fields.
Example fix
// before
throw new Error(data.result.detail || 'KBA Start Failed')
// after
throw new Error(data.result.detail ? `KBA Start Failed: ${data.result.detail}` : 'KBA Start Failed') Defensive patterns
Strategy: try-catch
Type guard
const kbaStartFailed = (data) => data?.result?.action === 'FAIL' && data?.result?.detail !== 'NO MATCH'
Try / catch
try {
await this.startKba()
} catch (e) {
this.error = e.message
// capture the provider detail for diagnostics
telemetry.captureMessage(`KBA start failed for field ${this.field.uuid}`)
} Prevention
- Handle every documented FAIL detail code explicitly
- Log provider detail strings for trend analysis
- Keep provider credentials and entitlements current
When it happens
Trigger: Provider returns FAIL with a detail like 'QUESTIONS UNAVAILABLE' or an empty detail; the KBA account is not entitled in this environment; provider-side degradation during incidents; requests that pass HTTP validation but fail the provider's business rules.
Common situations: Newly provisioned KBA account without production entitlements; provider maintenance windows; bureau does not cover the subject's region or profile.
Related errors
- Failed to start KBA
- Failed to submit answers
- Invalid KBA response
- Knowledge Based Authentication Failed
- Unfortunately, we were unable to start Knowledge Based…
AI-assisted analysis of docusealco/docuseal@004a22c1c8 (2026-08-21).
Data as JSON: /api/errors/7737551c25130c29.
Report an issue: GitHub.
Appendix: source
Thrown at app/javascript/submission_form/kba_step.vue:510
payload.phone = payload.phone.replace(/^\+1/, '')
}
const resp = await fetch(this.baseUrl + '/api/kba', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
})
const data = await resp.json()
if (!resp.ok) throw new Error(data.error || 'Failed to start KBA')
if (data.result && data.result.action === 'FAIL') {
if (data.result.detail === 'NO MATCH') {
throw new Error('Unfortunately, we were unable to start Knowledge Based Authentication with the details provided. Please review and confirm that all your personal details are correct.')
}
throw new Error(data.result.detail || 'KBA Start Failed')
}
if (data.output && data.output.questions && data.output.questions.questions) {
this.questions = data.output.questions.questions
this.token = data.continuations.questions.template.token
this.reference = data.meta.reference
this.questions.forEach(q => {
this.answers[q.id] = null
})
this.startCountdown()
} else {
throw new Error('Invalid KBA response')
}
} catch (e) {
this.error = e.message
} finally {View on GitHub (pinned to 004a22c1c8)