In ManagedObjectSet#handleSignalVertexUpdateFromEdge, the old (read from repo) and new (read from managed and with relationship-derived-virtual-property processing applied) are compared, and if they are equal, the managed object signal recipient will not be persisted. The problem is that ResourceUtil#isEqual is used to perform the equality comparison, but this comparison utility will strip out _id and _rev fields prior to performing the comparison. This means that
is equal to
Assume an effectiveManager relationship-derived virtual property with a referencedObjectFields specification of _id. When, for example, a managed/user/boss is created with a reports field pointing to a managed/user/dev. Upon signal receipt associated with this created edge, the old managed/user/dev effectiveManager field will be
the new effectiveManager field will be
but due to the semantics of ResourceUtil#isEqual, these two fields will compare as equal, and thus the managed/user/dev, with the new effectiveManager field, will not be persisted.