Migration from 2.x to 3.0.x
This guide covers public API changes between 2.x and 3.0.x.
Breaking Changes
- Read OTP resend cooldown from configuration instead of verification status.
let configuration = try await configurationService.getConfiguration(processType: "onboarding")
let otpResendPeriodSeconds = configuration.otpResendPeriodSeconds
otpResendPeriodSeconds is optional and can be nil when you are still integrating with an older backend that does not return the field yet.
- Update OTP state handling.
Before:
case .otp(let remainingAttempts, let otpResendPeriodInSeconds):
// use both values from verification status
After:
case .otp(let remainingAttempts):
// read resend cooldown from configuration.otpResendPeriodSeconds
Checklist
- Fetch and keep
WDOConfigurationResponse.otpResendPeriodSecondsfor the active process type, and handlenilfor older backends. - Update
switchstatements and pattern matching forWDOVerificationState.otp. - Stop relying on OTP resend timing from
status()results.
Last updated on Apr 27, 2026 (09:50)
Edit on Github
Send Feedback