Appearance
Error Codes Quick Reference
HTTP Status Codes
| Code | Meaning | Common Causes | Resolution |
|---|---|---|---|
| 400 | Bad Request | Missing required field, invalid format | Check request body and parameters |
| 401 | Unauthorized | Token expired or missing | Refresh token, re-authenticate |
| 403 | Forbidden | Insufficient scope | Re-authorize with required scopes |
| 404 | Not Found | Resource doesn't exist or deleted | Verify IDs and permissions |
| 409 | Conflict | Resource already exists | Use GET to check first |
| 422 | Unprocessable | Validation error | Check field constraints |
| 429 | Rate Limited | Too many requests | Back off per Retry-After header |
| 500 | Server Error | Canva-side issue | Retry with exponential backoff |
| 503 | Unavailable | Temporary outage | Retry with backoff |
Apps SDK Error Types
| Error | When | Resolution |
|---|---|---|
UnsupportedFeature | Calling unsupported API | Check features.isSupported() first |
UnauthenticatedUser | User not authenticated | Trigger authentication flow |
PermissionDenied | App lacks permission | Check app configuration |
RateLimited | Too many SDK calls | Implement debouncing |
NetworkError | Network issue | Retry with backoff |
OAuth Error Codes
| Error | Meaning |
|---|---|
invalid_client | Wrong client ID or secret |
invalid_grant | Authorization code expired or used |
invalid_scope | Requested scope not allowed |
unauthorized_client | Client not authorized for this grant type |
access_denied | User denied authorization |
Export Job Status
| Status | Meaning |
|---|---|
in_progress | Export is processing |
success | Export complete, URL available |
failed | Export failed, check error field |
Asset Upload Status
| Status | Meaning |
|---|---|
in_progress | Upload processing |
success | Asset ready, ID available |
failed | Upload failed |