An issue arises with upgrading an agent that currently runs 3.5.1. It is unable to recognise the package name as being valid when attempting to upgrade it through the hub. The old agents expect the naming convention to be in a particular form.
Solving by verifying your "body package_method u_generic" especially if you are Debian/Ubuntu users. There is still confusing in package naming convention. (to be "amd64" or "x86_64" or to be "i386" or "i686") The given value should match architecture in package filename, cfengine-nova_3.5.2-1_x86_64.deb
debian.x86_64::
package_name_convention => "$(name)_$(version)_amd64.deb";
debian.i686::
package_name_convention => "$(name)_$(version)_i386.deb";
Also, regarding this thread, Client Upgrade from 3.5.0 to 3.5.1, "package_version" has to reflect the version number of the package name too. (for instance, 3.5.2-1)