I’m trying to upload my Psychopy task to Pavlovia so we can run it online. I followed this nice and easy to follow video by PsychoPy but when I try to pilot the task after following the instructions, I get an error webpage saying:
403 Forbidden | nginx
I started by using PsychoPy version 2023.2.3, which my task was built on; when that gave the 403 error message, I followed all the instructions again with the newest version of PsychoPy as of 5/12/26 (version 2026.1.3). That resulted in the same error message.
Does anyone know where I might be going wrong / if there are new steps that I need to do in addition to those in the video? It was posted 5 years ago after all. Any help is appreciated!
If you click on View Code from the project page, has anything uploaded? Is there an index.html file and two JS files? Does the project page give your version?
When I clicked view code, nothing was uploaded. I switched from Pilot to Inactive and back to Pilot; I also tried to switch from Inactive to Running. I was still getting [403 Forbidden | nginx] when I tried to pilot the task. And there was still nothing there when I click View Code.
I opened my task locally in PsychoPy and hit Sync project with Pavlovia. It said “This file doesn’t belong to any existing project.” and it presented me with the option to “Create a project.”
After I clicked on that, it created a project and THIS TIME, all my files ARE there when I click View Code. Great!
Unfortunately, I’m not out of the woods yet; when I click Pilot on Pavlovia, a window appears saying “[Init] Please wait a moment.” This message does not go away. I tried waiting a while and trying again…still no luck.
Some more information:
When I open my project locally in Psychopy (2026.1.3) and click Sync project with Pavlovia (even though I hit Create a Project the first time) I’m still given the message: “This file doesn’t belong to any existing project” and I get the option, “Create a project.” I guess Pavlovia is not syncing properly with Psychopy after all.
Thanks for your initial response! I’d really appreciate any more help you can offer.
What I would recommend if when on that page right click and select “inspect” - select the “console” tab an any error messages will be displayed in there - you can then show those error messages in this thread for further support.
Yes! I was using a cloud storage folder. I followed your steps to sync the GitLab repository to a new (truly) local folder on my hard drive. I’m getting successful sync messages for pulling from remote as well as for pushing to remote. Thank you.
Let me try Becca’s advice and check the console for errors.
So the issue is that you have a variable c which you are treating as a colour dictionary (I think) but it is actually a string (or possibly undefined). Presumably the function mentioned earlier is how it gets created, and that is the root cause.