Hi,
I have an experiment implented using jsPsych which consists of three experiment sessions (1, 2 and 3). The session to be run by the current execution of the JS script is determined by a URL parameter, the URLs are distributed to the participants by me manually.
The sessions are executed in this order:
Session 1 ----ca. 14 days—> Session 2 ----ca. 1 day—> Session 3
(the delays depend on when the paricipant uses their URL)
The data I am saving contain (among other variables) HTML audio responses for 240 trials, which get relatively big in size. Each session generates two data objects (in JSON format) at the end, one with the actual experiment data (the big one) and a status object for each participant, so that I can track their progress. The status object is fetched locally each time a session starts (or created for session 1).
I am using a modified version of
https://pavlovia.org/lib/jspsych-7-pavlovia-2022.1.1.js to communicate with the Pavlovia server.
In my modified version, I have implemented POST-requests during the experiment and I am saving everything as JSON files instead of CSV. I also upload two files instead of one in the _finish
routine (i.e. two POST-requests happen before the final screen).
The data from Session 1 and 2 are being saved just as envisioned.
In Session 3, I have had participants whose main experiment data did not get saved, their status objects however did.
I have noticed that this issue happens particularly when there are parallel session executions by different participants. So far, when there are parallel executions of sessions 2 and 3, the data for session 3 is not saved. I haven’t observed another combination yet, e.g. session 1 and 3 or 1 and 2, which I assume is due to the 14 day delay after session 1.
I also had an issue with the status object being loaded from a browser’s local cookies instead of a successful GET-request, but (I believe) I managed to fix that by erasing the domain’s cookies at the moment the page opens.
Has anyone else experienced a similar issue with jsPsych or data saving during parallel session executions? Any insights or suggestions on how to resolve this problem would be greatly appreciated!
EDIT: I forgot to mention that the “Save incomplete data” option is also activated, and the corresponding callbacks in the jspsych plugin for Pavlovia adjusted accordingly, so that both data objects get saved.