Skip to content

bug: Timed assessment force-submit on timeout may not save latest code version #8304

@enkr1

Description

@enkr1

Bug Description

During a timed practical exam (Apr 16), I let the timer run out instead of manually clicking Finalise. After the force-submit on timeout, the submitted code shown was not the latest version I had pasted. It appeared to be an older auto-saved version.

There is no confirmation or visibility into which version of the code was actually submitted, so it's impossible to tell whether auto-save captured the latest edits before force-submit fired.

What Happened

  1. Completed all 4 tasks in a timed assessment (2-hour practical exam)
  2. Pasted final code into the editor
  3. Did not click Finalise, waited for the timer to expire
  4. Timer expired, force-submit triggered automatically
  5. Checked submitted code afterward, it was not the version I last pasted
  6. Had to ask my professor to manually look at a specific answer version to get the correct one graded

What I Expected

  • Auto-save should capture the latest editor state before force-submit
  • After force-submit, the submitted code should match what was last in the editor
  • There should be clear confirmation of exactly which version was submitted

Possible Areas to Investigate

  • Auto-save frequency: How often does the client auto-save drafts? If there's a gap between last auto-save and force-submit, the latest edits are lost.
  • Force-submit flow (timer.ts): Does the force-submit trigger a save of the current editor state before finalising, or does it just finalise whatever was last auto-saved?
  • BUFFER_TIME_TO_FORCE_SUBMIT_MS (5 seconds): Is this buffer used to save before submitting, or just for the countdown display?

Impact

  • I only got full marks (20/20) because my professor manually checked a specific answer version. Without that intervention, the wrong version would have been graded.
  • For students who don't notice or don't ask, this could cause incorrect grading.
  • Professors should not need to manually dig through answer versions because the platform submitted the wrong one.

Environment

  • Coursemology production (coursemology.org)
  • Timed assessment, 2-hour practical exam
  • Apr 16, 2026

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions