Hi Devienne,

I am not sure I understood a few things you said like,

[
 While working on this code, you may want
to set this define [3] in debug builds to catch such invariant-breaking mistakes.
Update the field via the functors you pass to the index's modify() method.
]

and 

[
Update the field via the functors you pass to the index's modify() method.
]

Does this,
[
You do need an iterator to pass to modify(), and for that you typically use one of your unique indexes,
which you then project() [2] into the non-unique index you want to update.
]
mean I would need to iterate using the unique key and find the object I want to update and change this non-unique key to the new one?

Thanks,
Ram