Skip to main content

Managing Active Attempts

When participants are actively taking a quiz, certain changes to quizzes, questions, and events are temporarily blocked. This protects participants from unexpected changes during their attempt — like changing the correct answer or time limit while someone is in the middle of answering.

What Gets Blocked?

If there are active (in-progress) attempts, the following actions will return a 409 Conflict error:

Quiz Changes

ActionWhen Blocked
Update time_limit_secondsAlways, if active attempts exist
Update max_attemptsAlways, if active attempts exist
Update submission_modeAlways, if active attempts exist
Update client_onlyAlways, if active attempts exist
Delete quizAlways, if active attempts exist
Bind/unbind questionsAlways, if active attempts exist
Safe to change anytime

Fields like title, description, categories, tags, metadata, status, access_type, availability, and shuffle_questions can always be updated, even during active attempts.

Question Changes

ActionWhen Blocked
Update correct_answerIf the quiz using this question has active attempts
Update pointsIf the quiz using this question has active attempts
Update optionsIf the quiz using this question has active attempts
Delete questionIf any quiz using this question has active attempts
Safe to change anytime

Fields like question_title, question_text, category, tags, difficulty_level, explanation, and metadata can always be updated.

Event Changes

ActionWhen Blocked
Update time_limit_secondsAlways, if active attempts exist
Update max_attemptsAlways, if active attempts exist
Update submission_modeAlways, if active attempts exist
Update client_onlyAlways, if active attempts exist
Update starts_atAlways, if active attempts exist
Update ends_atAlways, if active attempts exist
Delete eventAlways, if active attempts exist
Safe to change anytime

Fields like name, description, and metadata can always be updated.


What Does the 409 Error Look Like?

When a change is blocked, you'll receive:

HTTP Status: 409 Conflict

{
"code": "G-001",
"message": "Cannot modify quiz while there are active (unsubmitted) attempts. Use the force-submit endpoint to close them first.",
"data": null
}

The code is always G-001 for this type of error. The message will tell you which resource (quiz, question, or event) is affected.


How to Resolve It

You have two options:

Option 1: Wait for participants to finish

Active attempts will eventually be submitted — either manually by the participant, or automatically when the time limit expires. Once all attempts are submitted, you can make your changes freely.

Option 2: Force-submit all active attempts

If you need to make changes immediately, you can force-submit all active attempts. This closes every in-progress attempt for the quiz or event, as if each participant had pressed the submit button.

warning

Force-submitting will end all active attempts immediately. Participants who haven't finished answering will have their current progress submitted as-is. This cannot be undone.


Force-Submit Endpoints

Force-Submit Quiz Attempts

Closes all active attempts across the entire quiz (all events, all participants).

POST/api/v1/quizzes/{id}/force-submit

Request:

POST /api/v1/quizzes/{id}/force-submit

Response:

{
"code": "0000",
"message": "Force-submitted 3 attempt(s)",
"data": {
"submittedCount": 3
}
}

The submittedCount tells you how many attempts were closed. If the value is 0, there were no active attempts.


Force-Submit Event Attempts

Closes all active attempts for a specific event only.

POST/api/v1/events/{event_id}/force-submit

Request:

POST /api/v1/events/{event_id}/force-submit

Response:

{
"code": "0000",
"message": "Force-submitted 5 attempt(s)",
"data": {
"submittedCount": 5
}
}

Typical Workflow

Here's a common scenario: you published a quiz and participants are taking it, but you spot a mistake in a question's correct answer.

  1. Try to update the question — you'll get a 409 with code G-001
  2. Decide what to do:
    • If the quiz session is almost over, just wait for everyone to finish
    • If you need to fix it now, force-submit the quiz
  3. Force-submit via POST /api/v1/quizzes/{id}/force-submit
  4. Update the question — it will now succeed
  5. Optionally re-evaluate — use the sync-evaluation endpoint if scoring rules changed
Leaderboard update

After a force-submit, the leaderboard is automatically scheduled for recomputation. You don't need to trigger it manually.