The message itself is not generated by PhantomBot, but the library that interfaces with Discord that we do not support, we just use.
In reading that code, what happens is the message is sent to Discord, but then null is returned. In glancing over the Discord4J code, it looks as if this is thrown when an IOException is caught while talking to the Discord servers.
Typically, in Java, IOException is thrown during a communication error in talking with the remote service (not always, but typically, I didn’t read all the code and see if any other calls would throw IOException). It could be as a simple as a network hiccup, machine not able to keep up with socket connections, or a blip at Discord.
Can you do the following from the shell on the server, I am curious:
cat /proc/cpuinfo | egrep "model name|cpu cores"
Also, based on your spelling of ‘behaviour’ may I assume that you are not based in the US? I wonder what your latency is to the Discord API servers.