Duplicate resources should return 409 Conflict, not 500.
Check API logs for IntegrityError and add explicit error handling in the corresponding view.
Common examples:
- duplicate group slug;
- duplicate team slug;
- duplicate channel name inside the same team.
POST/PUT endpoints should return a structured 400 validation_error when body is missing or invalid JSON.
Query parameters such as start and end should be validated before date parsing reaches business logic.
Check:
- Real alert has an assignee.
- Assigned user has email in profile.
- Channel is attached to the matched route.
- Severity filter allows the alert severity.
- SMTP relay accepted and delivered the message.
Voice call sends to the assigned user's profile phone number. Set phone on the assigned user.
Telegram bot token must contain a colon:
123456789:AA...
If the token is invalid, fix the channel config or disable the channel.
Check that only one scheduler process is running and that scheduler is not started inside every web worker.