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

## Error Handling

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

```json
{
  "code": "OBJECT_NOT_FOUND",
  "message": "Object not found",
  "objectType": "KalturaAPIException"
}
```

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

```json
{
  "code": "VALIDATION_ERROR",
  "message": "appCustomId is required",
  "objectType": "KalturaAPIException"
}
```

| Error Code | Meaning |
|------------|---------|
| `OBJECT_NOT_FOUND` | App not found for your partner |
| `APP_REGISTRY_ALREADY_EXISTS_WITH_THIS_APP_CUSTOM_ID` | Duplicate `appCustomId` |
| `ORGANIZATION_ID_DOMAIN_AND_APP_TYPE_MUST_BE_UNIQUE` | Domain/org/type combination already taken |
| `APP_CANNOT_BE_ASSIGNED_TO_PARTNER` | Invalid app type for your partner |
| `UNKNOWN_PARTNER_ID` | KS does not contain a valid partner ID |

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