Recovery guarantees

Protect work before it leaves the browser

IndexedDB records work before transmission

Ready

The browser puts response events and submit requests in IndexedDB before it sends a network request.

The final response includes the submit request

Ready

Finish Assessment records the final response and submit request as one ordered local group before transmission.

Queued work stays after a reload

Ready

QFlowLearn restores attempt events and item snapshots from IndexedDB after a page reload or tab reopen operation.

Reconnect replays queued events

Ready

When the connection returns, QFlowLearn sends queued events in sequence. It removes an event after receipt confirmation.

Duplicate and stale tabs reconcile safely

Ready

The attempt authority and submit keys reject a state change from old tabs or repeated requests.

Proof scenarios

Browser recovery tests

The tests cover offline work, submit failures, final responses, reloads, reopened tabs, worker errors, and old duplicate tabs. Each test produces an evidence record.

Scenario What the proof shows Artifact Status
Answer saved while offline Browser goes offline, learner saves work, local pending count increases, network returns, receipt coverage advances. Offline replay E2E trace Ready
Submit request fails in transit QFlowLearn sends the submit request again after a transmission failure. The attempt gets a durable submitted state after reconnection. Degraded submit recovery E2E Ready
Network fails before final response reaches server The final response and submit request stay in the local queue. QFlowLearn sends them without a second learner action. Response-save gap E2E Ready
Duplicate tab tries to write old state QFlowLearn sends the current state to the browser and makes the old tab read-only. Duplicate-tab authority E2E Ready
Queued submit survives reload The learner clicks Finish Assessment while the attempt endpoint is unavailable, reloads, and the queued response plus submit request remain pending until replay. Reload recovery E2E Ready
Queued submit survives tab close and reopen The learner clicks Finish Assessment while offline, closes the tab, reopens the attempt, and QFlowLearn replays the queued submit after reconnect. Tab reopen recovery E2E Ready
Transient worker errors retry cleanly Queued response and submit events remain local through retryable server errors and replay after the service recovers. Worker retry E2E Ready
Recovery timeline

Recovery sequence

QFlowLearn records each learner action before transmission, replays queued actions in sequence, and reconciles them with the authoritative attempt state.

  1. Learner starts an assessment and receives the current attempt state.
  2. Learner answers, saves, navigates, or finishes the assessment.
  3. QFlowLearn writes the event and item state into IndexedDB before network transmission.
  4. If the connection is down, the learner sees queued work instead of lost work.
  5. If the page reloads or the tab reopens, QFlowLearn restores the queued work from local recovery storage.
  6. When the connection returns, queued events replay in order.
  7. Durable receipts confirm which sequence the platform accepted.
  8. The instructor and support view can explain what happened from the attempt evidence.
Recovery evidence

Review network recovery evidence

The technical packet includes offline, submit, reload, tab reopen, old tab, and receipt tests.