---
title: Error Handling
url: https://docs.kaltura.com/docs/getting-started/general/api-error-handling
---

## Error Handling

**Error response format:**

```json
{
  "code": "INVALID_KS",
  "message": "Invalid KS \"...\" - Error: EXPIRED_KS",
  "objectType": "KalturaAPIException",
  "args": { ... }
}
```

**Common error codes:**

| Code | Meaning | Resolution |
|------|---------|------------|
| `MISSING_KS` | No KS provided | Add `ks=` parameter |
| `INVALID_KS` | KS is malformed, expired, or revoked | Generate a fresh KS |
| `SERVICE_FORBIDDEN` | KS lacks permission for this service | Use an ADMIN KS or add required privileges |
| `INVALID_OBJECT_TYPE` | Unknown `objectType` value | Check spelling and available types |
| `PROPERTY_VALIDATION_CANNOT_BE_NULL` | Required field missing | Add the required parameter |
| `SERVICE_DOES_NOT_EXISTS` | Misspelled service name | Check the service name |
| `ACTION_DOES_NOT_EXISTS` | Misspelled action name | Check the action name |

**Retry strategy:** For transient errors (HTTP 5xx, timeouts), retry with exponential backoff: 1s, 2s, 4s, with jitter, up to 3 retries. For client errors (4xx, `INVALID_KS`, `PROPERTY_VALIDATION_*`), fix the request before retrying.
