This is often the result of PayPal's "item name" or another name having invalid characters or not supporting Unicode.
18.104.22.168 - - [17/Jul/2018:13:39:45 -0400] "POST //modules/gateways/callback/paypal.php HTTP/1.1" 406 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
A good clue is if you check the debug output of the IPN and find a mandatory column empty.
Obviously item_name has to be populated or things will usually break. Login to your PayPal settings and update your character encoding settings:
See how to do this in PayPal below:
paypal, ipn, handshake, invalid, quot, characters, supporting, unicode, jul, modules, gateways, callback, php, http, https, www, debug, output, mandatory, column, item_name, populated, login, settings, update, encoding,