Skip to content

HTTP status: attendance bulk validation

This page documents the problem type URI returned when POST /api/v1/activities/activities/ {activity_pk}/occurrences/{id}/attendance-bulk/ refuses to overwrite existing attendance for that occurrence until the client confirms.

type: "https://docs.keja.co/troubleshooting/status-codes/activities.attendance_bulk_validation"
Item Value
Status code 422
Content-Type application/problem+json
title (problem) Typically `Confirm replacing existing attendance`.
detail (problem) Human explanation; do not parse for automation per RFC 9457.
activities.attendance_bulk.confirm_replace_required
At least one attendance row already exists for this occurrence. Retry the same request with confirm_replace_existing: true after the operator confirms they intend to replace existing marks for eligible enrolments.

The issue object includes pointer /body/confirm_replace_existing.

{
"type": "https://docs.keja.co/troubleshooting/status-codes/activities.attendance_bulk_validation",
"title": "Confirm replacing existing attendance",
"status": 422,
"detail": "This session already has attendance recorded. Retry with confirm_replace_existing=true after operator confirmation.",
"errors": [
{
"code": "activities.attendance_bulk.confirm_replace_required",
"detail": "This session already has attendance recorded. Retry with confirm_replace_existing=true after operator confirmation.",
"pointer": "/body/confirm_replace_existing"
}
]
}
  • OpenAPI: OccurrenceAttendanceBulkRequest and POST .../attendance-bulk/ (experimental stability).