When implementing transactions, I noticed that the fit performer tests expected a kv operation against a collection/scope that doesn't exist to retry until the operation times out. However, lcb returns an LCB_ERR_SCOPE_NOT_FOUND or LCB_ERR_COLLECTION_NOT_FOUND in this situation. The tests verify it: https://github.com/couchbase/libcouchbase/blob/7f0afd1bc7b647aec4f4b12532a8afccafa2c1b2/tests/iotests/t_collections.cc#L240 for instance.
Checking with other sdks, go and java both would retry internally until the op times out. I've worked around it in the client for txns for now, but I'd love to remove my workaround.