---
title: Error Handling
url: https://docs.kaltura.com/docs/events-collaboration/user-profile-api/user-profile-error-handling
---

## Error Handling

Application-level errors return HTTP 200 with an error object:

```json
{
  "code": "USER_PROFILE_NOT_FOUND",
  "message": "Description of the error",
  "objectType": "KalturaAPIException"
}
```

Validation errors (missing required fields, invalid enum values) return HTTP 400.

| Error Code | Meaning |
|------------|---------|
| `USER_PROFILE_NOT_FOUND` | Profile ID not found or deleted |
| `USER_ALREADY_ASSOCIATED_TO_APP_GUID` | Active profile already exists for this appGuid + userId |
| `USER_ALREADY_EXIST` | Duplicate key error (race condition on concurrent creation) |
| `OBJECT_NOT_FOUND` | appGuid not found or not enabled in App Registry |
| `USER_ID_NOT_FOUND` | userId does not exist in your Kaltura account |
| `NOT_YET_SUPPORTED` | bulkAdd with mixed appGuids |
| `AMOUNT_OF_USERS_SENT_NOT_IN_ALLOWED_RANGE` | bulkAdd array size outside 1-50 range |
| `SESSION_START_FAILED` | Internal session validation failure |

**Retry strategy:** For transient errors (HTTP 5xx, timeouts, `SESSION_START_FAILED`), retry with exponential backoff: 1s, 2s, 4s, with jitter, up to 3 retries. For client errors (HTTP 400, `USER_PROFILE_NOT_FOUND`, `USER_ALREADY_ASSOCIATED_TO_APP_GUID`, `USER_ID_NOT_FOUND`), fix the request before retrying — these will not resolve on their own.
