Experiment crashing (sometimes) without error code - Pavlovia

URL of experiment: PRL [PsychoPy]

Description of the problem: I currently have my task working but some people in my pilot have found the task crashes occasionally. I have only been able to replicate the crash once without knowing what caused it. I can’t seem to replicate it again to find an error code in the browser console. It doesn’t appear to be browser specific as its crashed in chrome, safari, and opera. It tends to happen around 10 minutes into the experiment but only for online and it doesn’t crash on desktop.

The screen come up with the following icon in the top left and that’s it and doesn’t save the data.I have another task they do afterwards where no one has reported any crashes.

image

Apologies there isn’t much to go on - not sure what to do/how to proceed to fix it.

Any help is appreciated,

Chris

Hi Chris,

I am afraid I can’t help either but I wanted to add to the thread, maybe things will get investigated.

During my pilot it has never happened at all to me or the other person who tested it, now I started collecting data, I had 4 people already successfully complete the study but one participant got back to me saying that a few minutes into the experiment, it crashed with the browser shutting down. They used Google Chrome as browser.

I wonder whether some experiments are just too demanding for some laptops. Is there a thread that lists minimum basic computer requirements for smooth performance that you know of?

Cheers,
Julia

Hi Julia,

Thanks for adding to the thread! Sorry to hear its crashing for you too.

I posted the question again on this post: Pavlovia: black screen and unable to continue (RAM issues) and we managed to come to an answer.

I made the task a bit too fancy and it wasn’t able to run. I have a lot of code running each frame as I highlighted elements that participants hovered over to make it more interactive. Removing a lot of the ‘every frame’ code managed to fix it (mostly). It now crashes about 1/40 times compared to 1/2. I’ve also found before a large number of trials can also cause issues (could split into 2 parts if possible)

Thinking back, I suppose a lot of people we pilot on are friends/colleagues with relatively powerful hardware (we also create the tasks on good machines). Sending my task into the public, most of the crashes occurred on relatively older laptops.

I’m not aware of any minimum specs although it would be very useful! Anecdotally around 4GB of ram (Windows) tended to be good for my task. It’s not something I thought of at all. PsychoPy tasks don’t appear very intensive so perhaps the issue is with how Pavlovia handles/optimises the RAM (pure speculation).

Despite the changes, my task always hated Macs. I think they have different security protocols making it difficult. My videos never played on Macs and participants couldn’t respond using the mouse. I now only run it on Windows and Chrome.

Hope it helps!

Chris

1 Like

Hi Chris,

Thanks a lot for your reply. I wouldn’t have thought that my task is too intensive either, quite a few stimuli to download and lots of trials but split into loops and blocks so only ever 40 trials at a time in a loop.

Maybe the stimuli size is a bit big to be loaded quickly enough although the participant for whom it crashed went through two demo and four practice trials before it crashed in the main task. So maybe yes 40 trials in one go are too many. The participant wanted to try again and let me know whether it crashed again. Let’s see :slight_smile:

Are you doing anything to images in an Every Frame code block? I had a single animated image which I replaced with two polygons to solve what I think is a memory bleed issue (which in my case only occurred on mobile devices).

No not in the main task. But I am overlaying images which change to induce apparent motion of an agent through a scene. I am also not running the study on mobile devices.

I’ve just been experiencing memory overload simply from refreshing a single text stimulus every frame. I think I’ve solved it by only updating the component if the new text is different from the old text.

The warning I was getting in the console was requestAnimationFrame handler took N ms