Skip to content
AppNorth
Log in

Reference

Errors

The Swift SDK throws AppNorthError. Server responses use stable error codes for program logic; show a helpful explanation to the user instead of displaying the code alone.

View Markdown

Swift error cases

CaseMeaning and recovery
invalidConfiguration(String)Fix the API URL, public App ID or origin before constructing the client
invalidIdentityCredential(String)Obtain a valid credential from your authenticated backend
invalidResponseThe transport did not return an HTTP response; inspect your transport integration
network(String)Connectivity failed; retry with a bounded delay
server(status:code:fields:)Inspect the HTTP status, stable code and optional field errors
decoding(String)The success response could not be decoded; check SDK/server compatibility and the API base URL

AppNorthOfflineQueueError separately reports persisted-queue failures. See Offline and cache for storage and replay behavior.

Public API failures

Code or responseAction
INVALID_APP_ID, PROJECT_NOT_FOUNDCopy the public App ID from the correct app's installation page
APP_ID_MISMATCHUse the same public App ID in the feedback body and query
INVALID_JSON, UNSUPPORTED_MEDIA_TYPESend valid JSON with Content-Type: application/json
INVALID_IDEMPOTENCY_KEYSupply a key in the format documented in Limits
IDEMPOTENCY_CONFLICTThe key was already used for a different payload; preserve the original key for retries and use a new one for a new intent
INVALID_SCREENSHOTValidate the image data URL and screenshot limits
INVALID_PAYLOAD, INVALID_QUERYCorrect the fields or query parameters; do not blindly retry
ORIGIN_NOT_ALLOWEDCorrect the configured origin and app's allowed domain
IDENTITY_REQUIREDSupply a credential for an identified-only operation
INVALID_IDENTITYRenew the signed credential; check expiry and signing inputs on your backend
IDENTITY_NOT_CONFIGUREDConfigure identity verification for this app on the server
IDENTITY_EMAIL_MISMATCHMatch the feedback email to the verified identity
CHAT_DISABLEDEnable the intended chat mode in the app's settings
FEEDBACK_NOT_FOUNDTreat the private thread as unavailable to this identity
RATE_LIMITED / HTTP 429Wait for Retry-After when provided and reduce parallel requests
HTTP 413Reduce the request body, screenshot or diagnostics
HTTP 5xxRetry recoverable failures with bounded backoff; investigate persistent failures

Keep the same idempotency key when retrying the same mutation. Do not change its payload and reuse that key. Private resources can return 404 without disclosing another user's data.

Dashboard and provider errors

UNAUTHORIZED requires a dashboard session; FORBIDDEN requires the appropriate workspace role. FORBIDDEN_ORIGIN rejects a cross-origin mutation. PLAN_REQUIRED indicates unavailable feature access or allowance.

For CREDENTIALS_REJECTED, review provider credentials. For CREDENTIALS_UNREADABLE or ENCRYPTION_NOT_CONFIGURED, the deployment operator must check credential encryption. Never solve these by putting secrets in the client.

See Metadata for stale and partial publication, Price localization for uncertain writes, and Troubleshooting for symptom-based checks.

Report a failure

Record the route, HTTP status, error code, SDK version and correlation ID when available. Public responses can include correlationId; the current Swift server case exposes status, code and fields, not a correlation-ID property. Capture safe response metadata through your transport if you need that identifier.

Do not log identity signatures, API keys, private report bodies or screenshots.