Here is the error string that an update with $pop returns if the field we try to pop from is not an array:
> db.x.drop()
true
> db.x.save({_id: NumberInt(3), a: 1})
> db.x.update({}, {$pop: {a: 1}})
Can only $pop from arrays. INVALID-MUTABLE-ELEMENT has the field a of non-array type NumberDouble
The problem is that INVALID-MUTABLE-ELEMENT is displayed instead of properly printing the _id of the document on which the update failed.