Geo: provide more details in "File is not checksummable" error

In our common "File is not checksummable" error - https://docs.gitlab.com/administration/geo/replication/troubleshooting/synchronization_verification/#message-error-during-verificationerrorfile-is-not-checksummable - we often have to investigate why this is the case by querying the methods that the checksummable? method calls and going down a rabbit hole of queries.

We should be able to add more details on this failure - the checksummable? method below involves two boolean checks -

    def checksummable?
      model_record.in_verifiables? && resource_exists?
    end

So we can at least narrow it down to knowing which one of the above is returning false.

We can also go further if resource_exists? is not present for example -

    def resource_exists?
      carrierwave_uploader.file&.exists?
    end

..and perhaps provide the file path we are looking for, i.e.

Error during verification","error":"File is not checksummable - file 'mysite.com/s3/bucket/123.txt' does not exist"

This would save a huge amount of time and effort in debugging and also empower customers/support staff to resolve errors themselves.

Edited by 🤖 GitLab Bot 🤖