Skip to content

Troubleshooting and FAQ

Here are few typical issues you may encounter.

Unable to acquire a lockfile?

If you get an error like this, it means the Chrome browser is already running. You can either kill the browser process or restart the container (in the case of Docker).

Check if any Chrome process is running:

ps aux | grep chromium

If so, you can kill it:

pkill -f chromium

Note

Replace chromium with chrome if you are using the Chrome browser!

Then, clear the lockfile:

./surfmeter-automator-headless clearLockfile

This should make it possible to launch the Automator again.

How can I see the Virtual Display remotely? (VNC Connection)

If you have the X window daemon enabled, you can connect to a remote machine running Surfmeter Automator to troubleshoot issues that may only be visible in the browser session.

To connect to the virtual display from other hosts, you can use VNC. In the surfmeter-lab-automator directory, there is a script called run_vnc_server.sh that will launch a temporary VNC server instance.

For Debian-based systems, the following will:

  1. Install a VNC server capable of rendering X displays
  2. Ask you to create a password for connecting
  3. Launch a temporary VNC server instance
sudo apt update -qq && sudo apt install -y tigervnc-scraping-server
./run_vnc_server.sh

The script will print the port at which the server is listening for connections. You can then connect with your favorite VNC client.

What if I get ChromeDriver Errors?

In case you get an error like "This version of ChromeDriver only supports Chrome version ...", your ChromeDriver version is not up to date.

If you are using the Native Execution method, please run the setup.sh script again. It will update the ChromeDriver to the version matching your browser version.

With Docker, you should in principle always get the matching version of ChromeDriver.

How can I pretty-print the JSON log output?

If you want to pretty-print the JSON log output, you can use the pino-pretty tool.

Our Docker image already supports pino-pretty out of the box. If you haven't installed it already, install it via npm:

npm install -g pino-pretty

Then pipe the output of Automator to the program, for example:

./surfmeter-automator-headless startStudy --studyId STUDY_YOUTUBE | pino-pretty