Some datasets are not saved to Gitlab by Pavlovia

URL of experiment:

https://run.pavlovia.org/Merle/exnat-reading-pilot

Description of the problem:
Hi everyone, I’m currently running a pilot study I built in lab.js using Pavlovia/Gitlab. One of my participants just ran the study and it worked fine, but I don’t see their data at all on Gitlab.
I know that they actually ran the study because they sent me a screenshot from a slide of my experiment, and they closed the tab afterwards so the experiment isn’t still open or anything. The weird thing is that some datasets are saved properly and now I’m wondering what’s happening and how many full datasets might be missing.

Does anyone have an idea what might be happening here?
Thanks in advance!

Are some participants running it using a Pilot link?

Might they have closed the tab before the data had a chance to save?

Sorry – I’ve also just noticed that you are using lab.js, so my standard answers may not be applicable.

References

They’re not using the pilot link and the data should be saved even if they abort the session, so this shouldn’t be an issue. What I find weird is that sometimes it works fine. I mean I have 1 full dataset and a few where people aborted the session after a few pages.

Thanks for your quick answer btw! This is really making me nervous. ^^

Are you saving in CSV format?

The saving of partial data doesn’t work if the tab is closed too quickly.

Aah then that might be the mistake? What about the data from previous “slides”?
I mean, let’s assume I have an experiment that’s structured like this:
introduction - stimulus - response - debriefing
If the participant closes the tab really quickly during “debriefing” slide, will the data from the previous slides be lost, too?

And yes, I save it in CSV format and I also export the experiment for use with Pavlovia when exporting it in the lab.js builder.

Yes. At least with PsychoPy all data is uploaded in one go so that there is just one call to the server. There is now the possibility of using the shelf to save some data mid experiment. However, to stop people saving to the shelf on every trial (or even every frame) and overloading the server, calls to the shelf take about 500ms.

Ah okay, thank you! Is there any way I can make sure I don’t lose everything every time someone closes a session then?

In my experiments I add a message like “Please wait until you see the green Thank you for your patience message”.

One way of confirming that this is the issue, is to use my VESPR Study Portal.

In the portal you can see the number of confirmed and lapsed participants separately. To the best of my knowledge, you can’t reach the debrief page (and have your participation confirmed using the correct combination of participant and session values) until after the data has been saved.

1 Like

Thanks, I just embedded my study there. Fingers crossed that it works! Thanks for your help with this! :slight_smile:

Okay so I used the VESPR portal for my study and at first it seemed to work, but now a friend of mine completed the experiment and the data are lost again although she said she was redirected back to the portal at the end of the study. Is there anything else I could do?

I’m looking at the VESPR Study Portal data for experiment 225 and none of your 8 participants (6 lapsed, 2 in progress) reached the debrief page. Maybe you haven’t set the Completed URL to

$"https://moryscarter.com/vespr/portal/debrief.php?participant="+expInfo['participant']+"&session="+expInfo['session']

If you are using the portal correctly then you should see the number of lapsed and completed participants on your study admin page.

P.S. There is now an advanced feature to chance some of your participant text into German.

Ah okay, sorry, that’s probably the mistake - where do I have to set that?

And thanks for the German buttons & the heading, that’s really nice!

Experiment Settings / Online

I’m sorry, I think those are the settings for a PsychoPy study, but I don’t think I have this in a lab.js study(?). Is there something I can insert in my js code?

I don’t know lab.js but the principle is that you need to take the values sent to the experiment by the portal

For example, if the experiment is started with

https://run.pavlovia.org/Merle/exnat-reading-pilot/?participant=9&session=60869&group=1&expt=225&status=pilot

then it needs to end by sending the participant to:

https://moryscarter.com/vespr/portal/debrief.php?participant=9&session=60869

1 Like

Okay, I’ll check if I can redirect them like that! Thanks for your help with this!