I have found out that the affected contacts remain marked as “dirty” in the android backend.
So this is working as intented – when a contact can’t be uploaded, the DIRTY flag will not be removed so that it will be tried at the next sync run again.
However, the “version” of the raw contact is continuously increasing.
I’d need logs to say whether this is working is intended. In case that OwnCloud returns a 500, but changes the ETag of the contact, it’s correct that it will be downloaded again (maybe with other photo data). However, the DIRTY flag should be removed then.
@rfc2822: Although this particular error (synchronization is not finished) origins in owncloud, one could argue, that DAVdroid should not behave in this way, i.e. the continuously degrading of quality should not happen.
Indeed. Although DAVdroid – as already mention – doesn’t touch the image data itself.
However, I have not looked in the code to find out why the degrading happens and how to prevent it. But, maybe you can use the provided information in order to harden the error treatment of your app, if possible.
Without detailled logs, it’s impossible for me to track this issue.