Indeed, compression is available only in Enterprise Edition, where you can set levels. That makes this case all that more confusing. What should happen is the client (whether Java SDK or Sync Gateway) tries to negotiate snappy compression, the cluster will indicate it’s not supported, and the client won’t compress it.
The server also won’t compress it actively and it should not send any responses to the client indicating it is compressed.
So, what’s confusing here is how the client is receiving, occasionally, items that it says are compressed.
I believe you’re adding these images via Sync Gateway, correct? Sync Gateway does have the ability to manipulate metadata like the compressed bit directly. Perhaps there is something happening where that bit is being set and because you’re on community edition and compression cannot be negotiated, it just stores that way passing it on to other clients. @adamf or @borrrden, any thoughts on this possibility?
The only other though I have @jda, if it’s a transient issue, is that you turn the log level up to debug in a test environment where you can catch it. We could try with the log level at debug for the com.couchbase.client.core.endpoint.kv.KeyValueHandler
package first.