Troubleshooting

What's wrong and how to fix it :)

If you run into a really weird issue that doesn't seem right, this is the place to start.

Here you'll find solutions for common problems, where to find the log files, what to look for in those log files.


Dataplicity logs

If something goes wrong, your first clues will be in the Dataplicity agent logs.

There are two log files that usually matter most. The first is the installation log, which is relevant if you have an issue running the curl installation script: You can view this log file using the following command:

less /var/log/dpinstall.log

The second log file is the Dataplicity Agent runtime logfile.

If the installation appears fine, but you can't connect to your device, or if Dataplicity is behaving strangely on your device, here's where to look:

less +G /var/log/dataplicity.log

"+G" argument is used to rewind the file to its end.

Advanced logs

Sometimes, debugging a complicated issue, even that logs could be not enough. To see advanced debug information, you need to enable debug logs, using:

sudo nano /etc/supervisor/conf.d/tuxtunnel.conf

Now you can edit the service file, which starts Dataplicity on the startup of your device. On the string after world "command" you need to add:

--debug

as it shown on the screen below:

1258

After it save changes and exit. Next, you need to reread changed file used next commands:

sudo supervisorctl reread
sudo supervisorctl update

And voila! You can return to log file and be able to see all the logs, including that debug ones.

less +G /var/log/dataplicity.log

Dataplicity status

If the log files are quiet, it may be that Dataplicity Agent isn't running. To find out if the agent is running you can query the supervisor process:

sudo supervisorctl status tuxtunnel

To restart the Dataplicity Agent on your device:

sudo supervisorctl restart tuxtunnel

#1 - SSL Certificate Errors

Symptom: Can happen during the installation of Dataplicity:

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

Solution:

sudo apt-get install gnutls-bin ca-certificates -y 

gnutls-cli --print-cert dataplicity.com </dev/null| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/dataplicitycert.crt

echo | openssl s_client -connect dataplicity.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/dataplicitycert.crt

sudo cp /tmp/dataplicitycert.crt /etc/ssl/dataplicitycert.crt

sudo update-ca-certificates

Another possibility where SSL certificate errors could be seen would be inside the Dataplicity runtime logs, after the installer installed the Dataplicity agent.

Dataplicity uses SSL which is sensitive to the accuracy of your system clock. Raspberry Pi does not remember the time after a reboot, but when connected to the internet will use NTP to get an accurate time. If this has not worked, try "sudo rm /etc/fake-hwclock.date" and "sudo service ntp restart" and reboot the Raspberry Pi. The latter by itself might be enough if you're not on Raspberry Pi device.


#2 - Dataplicity doesn't work after a reboot

The Reason for it could be that /var/log directory is mounted as tmpfs.

Solution:
Put command mkdir -p /var/log/supervisor/ into
/etc/bashrc for raspbian and ubuntu and debian. other OS might differ, but the main point is to ensure /var/log/supervisor directory exists before the dataplicity agent is started.


#3 - Trouble installing Dataplicity on a read only file system

Make the following directories Read-Write for dataplicity to install: /etc/supervisor , /opt/ , and for dataplicity to run: /var/log/

It also might be worth adding the following line to /etc/fstab:

tmpfs /var/log/supervisor tmpfs nodev,nosuid 0 0

#4 - Logs contain: Input/Output errors.

It may be that you're trying to run dataplicity on a read only file system. The agent requires read/write access to certain parts of the filesystem to operate, and you may need to make adjustments to your system to permit this.

Another possibility is that your SD card may be full. In such case you will need to clear some space or migrate to a larger SD card.


#5 - Logs contain: ImportError: 'module' object has no attribute 'main'.

Installation is corrupt. Delete the directory /home/dataplicity/.pex and rerun the curl installation script to fix this.


#6 - Dataplicity status returns: ImportError: No module named packaging.version

You need to reinstall pip using:

sudo su root

apt-get purge -y python-pip

wget https://bootstrap.pypa.io/get-pip.py

python ./get-pip.py

apt-get install python-pip

#7 - Dataplicity is slow on a Raspberry Pi

Disabling IPv6 support on the Raspberry Pi OS will solve this problem


#8 - Apache2 files under /var/www/html are not showing up on wormhole

Add permissions for the files in the /var/www with the command:

sudo chmod -R 777 /var/www

#9 - The keyboard is not visible when accessing the web terminal on a mobile device through a browser.

This is standard web browser behaviour. For the best experience on mobile, try our native Android or iOS apps.