Troubleshooting

No space left on device

If you see a No space left on device or You don't have enough free space error when executing Docker commands, the solution is typically to prune your local Docker storage. You can do this by running the following:

docker system prune
docker system prune --volumes

Error parsing launch response

If you see an error like this:

Error parsing response from https://dlgr-cdd607db-d584-551a.herokuapp.com/launch, check web dyno logs for details: <!DOCTYPE html>
    <html>
      <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta charset="utf-8">
        <title>Application Error</title>
        <style media="screen">
          html,body,iframe {
            margin: 0;
            padding: 0;
          }
          html,body {
            height: 100%;
            overflow: hidden;
          }
          iframe {
            width: 100%;
            height: 100%;
            border: 0;
          }
        </style>
      </head>
      <body>
        <iframe src="//www.herokucdn.com/error-pages/application-error.html"></iframe>
      </body>
    </html>
Traceback (most recent call last):
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3.10/json/_init_.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/r/.virtualenvs/dlgr_env2/bin/dallinger", line 8, in <module>
    sys.exit(dallinger())
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/click/core.py", line 1130, in _call_
    return self.main(*args, **kwargs)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/command_line/utils.py", line 72, in wrapper
    return f(*args, **kwargs)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/command_line/_init_.py", line 266, in wrapper
    return f(**kwargs)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/command_line/_init_.py", line 104, in wrapper
    result = func(*args, **kwargs)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/command_line/_init_.py", line 294, in deploy
    return _deploy_in_mode(
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/command_line/_init_.py", line 246, in _deploy_in_mode
    return deploy_sandbox_shared_setup(
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/deployment.py", line 218, in deploy_sandbox_shared_setup
    launch_data = _handle_launch_data(launch_url, error=log)
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/dallinger/deployment.py", line 48, in _handle_launch_data
    launch_data = launch_request.json()
  File "/home/r/.virtualenvs/dlgr_env2/lib/python3.10/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

It means that an error occurred when PsyNet/Dallinger tried to launch the experiment on the remote server. The ‘real’ error message can be found on the remote server. If you are using Heroku, you can find the real error message by looking in the Papertrail logs. If you are using an SSH server, you can find the real error message by SSHing to the server, executing cd ~/dallinger/your-app-name, then executing docker compose logs.

Stuck during database initialization

We have reports of experiment deployments getting stuck at:

Experiment read-prescreener-demo5 started. Initializing database
Database initialized

We have heard that the problem resolves if you restart the remote server with the following command:

sudo reboot

though note that this may interrupt pre-existing deployed experiments. This problem needs further investigation.

Stuck during experiment launch

If the psynet deploy ssh or psynet debug ssh command gets stuck partway through, it’s normally worth checking the docker compose logs on the remote server:

cd ~/dallinger/<your-app-name>
docker compose logs

If the error occurs during “Launching experiment”, beware that the last error may not be indicative of the real issue, because it may instead reflect errors from the launch command repeatedly trying to relaunch over a previous partial launch. It’s a good idea to scroll up to the first issue in this case. Note also that if your command fails early on then you might instead see Docker compose logs from the previous time you tried to launch the experiment.

Note: A common problem is that you are using a different version (e.g. branch or commit) of PsyNet locally than on the remote server. This can lead to unexpected errors. You should check your requirements.txt before deploying and verify that it gives the same branch/commit that you have selected locally.