diff --git a/inventory_provider/snmp.py b/inventory_provider/snmp.py
index a97df15d0b5aed2899cbdda0489a736d5f40153a..8bbcc93ca8ffc71e19c261ebc618534c8c1cb618 100644
--- a/inventory_provider/snmp.py
+++ b/inventory_provider/snmp.py
@@ -57,9 +57,19 @@ def walk(agent_hostname, community, base_oid):  # pragma: no cover
             lexicographicMode=False,
             lookupNames=True,
             lookupValues=True):
-        assert not engineErrorIndication
-        assert not pduErrorIndication
-        assert errorIndex == 0
+
+        # cf. http://snmplabs.com/
+        #       pysnmp/examples/hlapi/asyncore/sync/contents.html
+        assert not engineErrorIndication, (
+            'snmp response engine error indication: %r'
+            % str(engineErrorIndication))
+        assert not pduErrorIndication, 'snmp response pdu error %s at %s' % (
+            pduErrorIndication.prettyPrint(),
+            errorIndex and varBinds[int(errorIndex) - 1][0] or '?')
+        assert errorIndex == 0, (
+            'sanity failure: errorIndex != 0, '
+            'but no error indication')
+
         # varBinds = [
         #     rfc1902.ObjectType(rfc1902.ObjectIdentity(x[0]),x[1])
         #         .resolveWithMib(mibViewController)