This is easy to reproduce:
Update the dc:description metadata on a remote doc while concurrently modifying the local content of a file within the same sync batch (easy to do with a long delay, or if the local scan takes a long time).
The problem is due to the way we detect remote changes, using the last modification date, which is updated when changing a metadata. In the case where the file has not been modified locally, it is not a problem, we will see in the logs something like "No local impact of metadata update on document XXX". But in the case where a local change has occurred, the resulting pair state from (local_state='modified', remote_state='modified') is 'conflicted'.
This is due to the way we handle the remote information sent by the server in Model.update_remote().
We need to mark a pair as 'modified' in a certain number of cases, typically if its content has changed, if it is a folder newly registered as a synchronization root by some user, if security has changed, etc. but not necessarily in the case of a simple metadata update.
So we need to specify how we want to handle this use case and deal with it.