Swift / Error handling
Swift: map API errors to user actions
Map 401, 402, 429, server failures, configuration errors and generic Swift SDK errors to explicit user actions.
These examples use the local VedikaSDK package at sdks/swift in the Vedika repository. The current Swift client covers Vastu. The package requires Swift 5.9, iOS 15 or macOS 12.
Choose an action from the error type
Keep the decision separate from UI text. This example returns an app-owned enum; it does not send requests, change an account, or schedule a retry.
import VedikaSDK
enum BasicAction: Equatable {
case reviewAccess, reviewBalance, wait
case reviewService, reviewConfiguration, reviewRequest
}
func basicAction(for error: Error) -> BasicAction {
switch error {
case is VedikaConfigurationError:
return .reviewConfiguration
case is VedikaAuthError:
return .reviewAccess
case is VedikaInsufficientCredits:
return .reviewBalance
case is VedikaRateLimitError:
return .wait
case is VedikaServerError:
return .reviewService
case let failure as VedikaApiError:
return failure.statusCode == 403
? .reviewAccess : .reviewRequest
default:
return .reviewRequest
}
}
The current mapping
| Response | Swift error | Next step |
|---|---|---|
| 401 | VedikaAuthError | Review key configuration. |
| 402 | VedikaInsufficientCredits | Review wallet balance. |
| 429 | VedikaRateLimitError | Read the optional wait hint. |
| 5xx | VedikaServerError | Review service status and the result. |
| 403 / other | VedikaApiError | Review access or request details. |
Keep account decisions explicit
A 403 has no dedicated subscription-error class in this Swift SDK. Client construction can throw VedikaConfigurationError, which is separate from VedikaApiError. A generic API error may also have no HTTP status after a transport failure.
These actions describe what the user can review. An error alone does not prove whether a charge or refund occurred. Confirm account state before another paid request.
Continue with API documentation, current pricing, or support.