| Reference | Downloads | Github

Pavlovia undefined experiment designer


I am hoping to host a psychopy experiment on pavlovia. I have a task which works when run offline, and have synced it with my pavlovia account. I’ve changed the status to Piloting and then clicked ‘Pilot’. When I do so it opens a new browser window with the following error:

I’ve seen a similar question posted recently but it doesn’t seem to have a solution. If it helps, my pavlovia account name is AnthonyGabay and the project is test_effort.

I’m not sure if I’m missing something obvious here? Like somewhere I’m supposed to enter this info in my account?

Thanks in advance,

This is something @apitiot is looking into at the moment. We’ll let you know if there’s news

I get this error every time I first sync a project to Pavlovia. The new experiment will show up in Pavlovia, and can be changed to ‘Piloting’, but this screen shows up when you press Go. If you check GitLab, you’ll probably find you have your new experiment folder / repo there, but it’ll be empty and none of the actual files have synced. Manually pushing the files always fixes this for me:

New Terminal At Folder >

git init
git remote add origin
git add .
git commit -m "Initial commit"
git push -u origin master

The link on the second line will need updating to the one that shows in your empty GitLab repo, this is just an example. Hope this helps.

Hi Jamie,

Thanks for this. Unfortunately that doesn’t seem to be the issue. It looks like all the files had synced.


Hi @jon and @apitiot,

Thanks for looking into this. Just to let you know that sometimes instead of the error given above, I get a 403 Forbidden error (nginx).

I’m hoping to start running this in about 2 weeks. I recognise that it will probably be difficult to say, but do you suspect it will be sorted by then? If not I may have to look into coding the experiment in a different software, but would obviously really really rather not do that because I have used this version offline, not to mention the hassle of doing so.


Hi @Anthony, looking at your repo for your test-effort project, there is no HTML folder with your HTML and JS, so the task will not run. What is your process for exporting the HTML? Are you clicking the sync button in PsychoPy Builder? Also, are your Experiment Settings > Online > Export HTML settings set to “on sync”?

Also, your task will need updating for online use. For example, the rating scale is not supported online, it has been replaced with the new Slider component. Also, your code components will need translating from Python to JavaScript. The JS syntax is only slightly different from Python code, and the new code component has a code type menu in the dialog box. If you select a code type of “Both”, you can see the Python code in the left panel, and the JS code in the right panel, simultaneously to facilitate translation.

Hi @dvbridges,

Yes, I am clicking sync in the drop-down menu, and yes the Export HTML is set to “on sync”.

Thanks for the info re slider and needing to code it in JS. Is there any documentation anywhere which says it needs to be in JS rather than Python for online? Just wondering if I missed that somewhere.


Ah, I think that is the problem. You need to sync from the Builder interface in order to have PsychoPy build the HTML and JS on your native app. It then gets pushed up to Pavlovia. Aatually, I don’t think you can sync from, so do you mean from the Builder interface?

Yes, the documentation is in development, but is coming soon the website in the docs section. In general though, Python would not be used to run web apps, its usually a combination of HTML (structure), CSS (style) and JavaScript (interaction) and other things in the background running the servers. Although, the good news is that Alain from Ilixa is currently writing a tool that will automatically translate your code components from Python to JavaScript.

@dvbridges sorry I wasn’t clear. You’re right, I mean the drop down titled “” in the Builder interface.

So given that, any ideas why it may not be building the HTML?


There must be an error somewhere if the HTML is not being produced. If you could open the Coder view, then go to Builder, open your task and click the globe with the green sync button. Then, when that has finished, take a look at the Coder window. In the output panel at the bottom, errors should appear if any. So, copy and paste any errors here, and also the output of the sync window that pops up.

Sorry for the delayed reply @dvbridges, I was away for a few days.

I did as you asked. The first time it asked me to recreate the project, which I did. I forgot to screen shot the sync window, but it said it was successful. I checked on gitlab and there was still no html folder. There was no error in coder output either.

However, I then tried syncing again and this time it worked and now there is an html folder and the below success message:


However, when I click “Pilot” I get the 403 Forbidden page. Is this just to do with the fact that I haven’t converted to JS yet?

Thanks for your help up to this point.


Hi again,

I’ve managed to get a bit further. I’ve setup a new pavlovia project: AnthonyGabay/jstest. This has updated code to JS. I’m not very confident that I’ve coded it correctly. I synced the new version, then tried piloting it. It opens a new tab and then freezes on the “initialising the experiment” page. I saw that a question about this has been posted before where it was suggested to update the psychopy version. I have done so but the issue remains.

Any thoughts?


@Anthony, are you able to update your current version of PsychoPy. You are using 3.0.3, and lots of fixes have been implemented since. This current issue is related to mismatching filenames between your psyexp file name and the Experiment Name in the Experiment Settings. In the earlier versions, they must match, otherwise the HTML does not know the correct name of the JavaScript filename.

If you cannot update, then just get the experiment name in experiment settings to match the psyexp filename.

@dvbridges, I have updated and set up a new pavlovia project: AnthonyGabay/jstest. When clicking on pilot it now freezes on the “initialising the experiment” page. It wouldn’t surprise me if the JS coding isn’t quite right, but would this cause the freeze?


@Anthony, seems to be the same issue as before where you do not appear to have a html folder. I am not sure what is happening there. Your html folder should be created when you click the sync button (the Globe icon in the tool bar with the green circular arrows). After the html is created, it is pushed up to Pavlovia. When you click the globe, is it creating the HTML folder locally?

@dvbridges, there is a html folder:

Right, my bad. Although, it is still compiling using version 3.0.3. If you have PsychoPy version 3.1.4 now after updating, then check your experiment settings > Use PsychoPy version and make sure that is blank. If blank, it uses the most up to date PsychoPy available.

@dvbridges, I checked and it was blank. I’m confused because the gitlab page isn’t showing up the recent syncs, even though the dialogue box says everything is syncing fine.

In the psychopy coder output I am getting two errors though:
406.9949 ERROR Line 2079: Unexpected end of input in foraging_online_JStest.js
433.0968 ERROR Line 2093: Unexpected end of input in foraging_online_JStestNoModule.js

Thanks @Anthony, that is helpflul. That means there is an error in the compilation of your code due to either a code component, or some line of code used in one of your components. In this case its the code components in your end routine and rest routine. There are some conditional statements that are missing the closing braces around the block of code.

@dvbridges, well that’s embarrassing. Thanks - I figuered the error message would be something like that.

However, the issue regarding the infinite “initialising the experiment” page remains. Also, my sync still isn’t being reflected on my Gitlab page, which says I last synced 21 hours ago (I have tried to sync multiple times since then, including just now). The git message is signalling success: