So I recently ran into an issue where I was upgrading Cacti and ran into this issue. I was able to snmpwalk with my credentials and get a response but when I entered those same credentials adding a device to Cacti, there was an SNMP error.
Turns out Cacti is very sensitive to the version of PHP you are using and whether you are using SNMP v2 or v3.
I upgraded PHP to version 5.3.x and all was right with the world for the newer version of Cacti, 0.8.7g
Note: A collegue of mine noticed that Cacti 0.8.7a didn’t work well with PHP 5.3 and he was able to get working with PHP 5.2.x