This is a "living" document. It is attempted to keep it up to date with any new problems and troubleshooting techniques. If you find something missing, please create an Issue do describe what problem or issue is missing. Better yet is to fork the MeshChat repository, update the documentation in the forked repository and then generate a PR back to the official MeshChat repository. Your efforts will be greatly appreciated.
It is important to realize that MeshChat is effectively two separate programs: one that runs in your browser (the frontend code) and one that runs on the AREDN node (the backend code or API). While it may not be obvious which piece of code is having the problem, it generally can be broken down as if there is an issue with the format of a message or it being displayed in the browser then the frontend code should be investigated. Otherwise the API should be investigated.
There is a known issue that if an older AREDN firmware is being upgraded, any additional packages will need to be reinstalled after the node has completed the firmware upgrade. This should not be the case for AREDN firmware 3.23.8.0 or greater.
If it appears that the installation of the package did not completely install or is not fully functional, check the node to determine how much disk space is available. Generally one should plan on a minimum of 100 KB of disk space for MeshChat to operate.
Package installation failures also generally have an error message displayed above the upload button when there is a failure. This can help indicate what the failure type was, so it should be reported back as a project issue using the link above.
In order for messages to be synchronized between MeshChat instances, the
meshchatsync
process needs to be running. Log into the node and execute
ps | grep meshchatsync
to see if the process exists. If it is not
running, then one can start it with executing /usr/local/bin/meshchatsync
.
Doing so will keep the process attached to the current terminal and any
error output will be displayed in the terminal. Once the terminal is
exited, the meshchatsync
process will terminate. So after determining
that there are no errors being generated, it is best to reboot the node.
This will allow meshchatsync
to startup normally with no manual
intervention.
If it appears that meshchatsync
is operating correctly, then the next
item to check is that the message database exists and messages are being
written to it. On an AREDN node, the message database is normally located
in /tmp/meshchat
. Check for a messages.<ZONE NAME>
. If the message
database does exist, post a new message in the MeshChat instance on the
node and insure that the message gets written to the message database.
Also insure that the message database has write permissions on the file.