This problem arises when a client uses the multi-valued setter methods in the JCR API to create on a node a new property with a single value, to save the node, and then to continue working with the property (again, using the multi-valued setter or getter methods). When the property is created, an appropriate multi-valued property definition will be chosen from those available on the node's primary type (and mixin types, if there are any). However, after the save, the property may node have a single-valued property definition. And since JCR does not allow a single-valued property to be changed via the multi-valued setters, the result is an exception when the client attempts to set the property using the multi-valued setters.