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

## Error Handling

| HTTP Status / Error | Meaning | Resolution |
|---------------------|---------|------------|
| `401 Unauthorized` | Invalid or expired KS | Generate a fresh KS with `userId` set — Events Platform requires it |
| `403 Forbidden` | KS lacks required permissions | Use an admin KS (type=2); the `userId` must be an Events Platform team member |
| `500 Internal Server Error` (on list) | KS `userId` is not an EP team member | The `userId` in the KS must match a user registered as a team member (Admin/Organizer/ContentManager) on the Events Platform instance |
| `404 Not Found` | Event, session, or team member ID does not exist | Verify the integer ID; resource may have been deleted |
| `400 Bad Request` | Missing required field or invalid date format | Dates must be ISO 8601 format (e.g., `2025-06-15T09:00:00.000Z`). Event IDs are integers. |
| Duplication job stuck | `duplicateStatus` returns `IN_PROGRESS` indefinitely | Poll with timeout (5 minutes recommended); if stuck, create the event manually |

**Retry strategy:** For transient errors (HTTP 5xx, timeouts), retry with exponential backoff: 1s, 2s, 4s, with jitter, up to 3 retries. For client errors (`401 Unauthorized`, `403 Forbidden`, `400 Bad Request`), fix the request before retrying — these will not resolve on their own. For async operations (event duplication), poll with increasing intervals (5s, 10s, 30s) rather than tight loops.
