In the event that rsync encounters a file on the receiving end that it cannot read, it will treat the file as if it is empty, try to replace it, and issue the following message:
rsync: failed to open "/path/to/file", continuing: Permission denied (13)
However, even if it succeeds it will also issue this messages:
rsync error: some files could not be transferred (code 23) at main.c(789)
This leads the user (and any scripts checking the return code) to believe that the transfer has failed, when in fact it has succeeded.
Created attachment 2966 [details]
Turning this error message into a warning that does not set a return code appears to be a simple matter of changing FERROR to FINFO for this message.
I have expanded the error codes that a protocol-30 rsync can send so that it can indicate that a message is an error (which should go to stderr) without causing the "some files could not be transferred" error at the end. So, this is now fixed in the git repository.