Protocol mismatch error

Problem

Solution

Ensure your agent and daemon are both up to date on the same version number.

Restart your web server (Apache, Nginx, PHP-FPM, etc.).

If the number A.B is less than the number X.Y, it means that you have an out of date agent trying to communicate with a more modern daemon.

If the number A.B is higher than the number X.Y, then it means that your daemon is out of date, and the most likely cause is that you have too many daemons running. In this case, kill all of the currently running newrelic-daemon processes, and restart the daemon using /etc/init.d/newrelic-daemon start.

Cause

The only reason for this error is that your agent and daemon are out of sync with each other. The daemon and the actual agent (the PHP extension) are a very tightly coupled pair, and the daemon will only accept connections and commands from an agent that matches it.

Sometimes the upgrade process will fail to kill the old daemon correctly and you may still have old daemon processes running. Frequently, this error is caused by not restarting your web server after an upgrade. If the daemon was upgraded correctly, but your web server still contains older agents, you will see this error. The error itself points to which one is out of date.