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.