Release Notes
3.1.11 — March 2025
Version 3.1.11 for Java delivers the following features and enhancements:
Deprecations
None for this release
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.10 — November 2024
Version 3.1.10 for Java delivers the following features and enhancements:
Deprecations
None for this release
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.9 — August 2024
Version 3.1.9 for Java delivers the following features and enhancements:
Issues and Resolutions
Deprecations
None for this release
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.7 — May 2024
Version 3.1.7 for Java delivers the following features and enhancements:
Issues and Resolutions
- 
CBL-5521 — Fixed N1QL Parser has exponential slowdown for redundant parentheses 
- 
CBL-5569 — Fixed Text Log Files do not have date included in the log timestamp 
- 
CBL-5631 — Fixed pthread_mutex_lock called on a destroyed mutex 
- 
CBL-5652 — Fixed HELIUM: toJSON should throw unchecked exception 
- 
CBL-5653 — Fixed HELIUM: Client Task executor should not fail on RejectedExecution 
- 
CBL-5655 — Fixed HELIUM: Native crash in objects derived from ResultSet 
- 
CBL-5657 — Fixed HELIUM: NativeC4QueryObserver.free should disable the listener before freeing it 
Deprecations
None for this release
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.6 — March 2024
Version 3.1.6 for Java delivers the following features and enhancements:
Issues and Resolutions
- 
CBL-5259 — Fixed crash in setting Housekeeper::_doExpiration()
- 
CBL-5296 — Fixed error messages WARN_WRONG_IDandWARN_WRONG_COLLECTION
- 
CBL-5309 — Iterator behavior is now consistent over Documents, Dictionaries and Arrays 
- 
CBL-5448 — Attachments flag is no longer dropped when applying delta to incoming revs 
Deprecations
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.3 — November 2023
Version 3.1.3 for Java delivers the following features and enhancements:
Issues and Resolutions
- 
CBL-4989 — fix handling of nulls in CollectionChangeNotifier.getChanges()
- 
CBL-4987 — Remap LiteCore log domain "Changes" to Database domain 
- 
CBL-4950 — fix handling of nulls in ManagedC4Database.finalize()
- 
CBL-4789 — Properly handle continuation frames from websockets 
- 
CBL-4705 — Fix cbliteexport command to work with collections
Deprecations
None for this release
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.1 — July 2023
Version 3.1.1 for Java delivers the following features and enhancements:
Issues and Resolutions
Deprecations
None for this release
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 | 
3.1.0 — March 2023
Version 3.1.0 for Java delivers the following features and enhancements:
Scopes and Collections
Couchbase Mobile’s cloud-to-edge support for scopes and collections allows application developers to organize and logically isolate data.
Independent lifecycle management and fine-grained security control simplifies the deployment of multi-tenant and high-application density cloud-to-edge applications at scale.
Scopes and Collections are a first class concept, synced between Couchbase Lite and Sync Gateway, between Sync Gateways (Inter Sync Gateway Replication), between Couchbase Lite peers, as well as available offline-first on Couchbase Lite devices.
Enhancements
- 
CBL-4131 - SQL : Enhance COLLATE syntax to support locales for UNICODE Collator++ 
- 
CBL-4098 - Provide option to Save Cookie with Domain being a parent domain of the request 
- 
CBL-3916 - Report invalid / unknown network interface using kC4NetErrUnknownInterface 
- 
CBL-3651 - Only send port in HTTP Host header if non-standard 
- 
CBL-3135 - Correct/document DB operations allowed in a batch transaction 
- 
CBL-3093 - Add DB closed recommendation to docs for Database.close 
- 
CBL-3085 - Make SSLException a recoverable error in AbstractCBLWebSocket: 3.1 
- 
CBL-2974 - Implement enhanced pinned server certificate feature 
- 
CBL-2623 - Make debug and verbose logs conditional on debugging flag 
Issues and Resolutions
- 
CBL-3807 — Server Certificate can disappear during authentication 
- 
CBL-4293 - ReplicatorConfiguration.setAuthenticator should allow a null argument 
- 
CBL-4219 - URLEndpointListener.getURLs returns an empty list on Android v>=11 
- 
CBL-3952 - MessageEndpointListener's C4Socket is getting GC'd prematurely 
- 
CBL-3921 - Error when sending _bulk_docs request with large number of docs 
- 
CBL-3872 - MaxAttempt when set NSUIntegerMax, converts to Zero 
- 
CBL-3866 - Fix WebSocket error 1006, "connection closed abnormally" crash 
- 
CBL-3824 - Re-opening a database with an Index causes failure 
- 
CBL-3808 - Server Certificate can disappear during authentication 
- 
CBL-3682 - LiteCore fails, apparently attempting to destruct a db while in a transaction 
- 
CBL-3626 - setDocumentExpiration hangs inside a batch transaction 
- 
CBL-3574 - Set expiration on deleted doc doesn't throw exception 
- 
CBL-3526 - Continuous Pull Replicator went to stopped instead of idle 
- 
CBL-3384 - Worker::childChangedStatus may lose child after enqueued 
- 
CBL-3257 - c4db_scopeNames doesn't return the name of the default scope if it is empty. 
- 
CBL-3193 - Native crash freeing a C4DocumentObserver (c4docobs_free) 
- 
CBL-3075 - Database could be corrupted after being copied in linux platform 
- 
CBL-3046 - Connection Timeout is set to 15000000 Milliseconds on Non Windows Platforms 
- 
CBL-3013 - Continuous replicator does not push docs which are being observed 
- 
CBL-3010 - LiteCore delivers unrecoverable error in BUSY state 
- 
CBL-2994 - c4DbChanges in AbstractDatabase.postDatabaseChanged may contain nulls 
- 
CBL-2948 - revpos is missing in the changed attachment body when using delta sync (Port) 
- 
CBL-2922 - Message Socket does not correctly handle recoverable errors 
- 
CBL-2867 - Cannot update the same field again after reopening the database (Port Fix) 
- 
CBL-2779 - N1QL : Meta().<property> column name returned as $<num> 
- 
CBL-2736 - Incorrect key for SQL Query: "SELECT * FROM _default"++ 
- 
CBL-2734 - Database GetDocumentExpiration returns null instead of expected date 
- 
CBL-2721 - Database is closed while replicator change listener is still executing 
- 
CBL-2694 - CBL sending rev list with gaps, when sync'ing more than 20 revs 
- 
CBL-2693 - LiveQuerier could be leaked as liveQuerierStopped() delegate might not be called 
- 
CBL-2676 - 409 retry can result in invalid remote ancestor ID 
- 
CBL-2637 - Replication unable to continue after termination between rev and ack 
- 
CBL-2614 - Fix Memory leak when rapidly restarting replicator 
- 
CBL-2610 - Cleanup bundle folder when creating a database fails 
- 
CBL-2586 - LiveQuerier is running after having been stopped, causing a crash 
- 
CBL-2532 - Assertion failure when stopping replicator while replicator is connecting 
- 
CBL-2477 - Tear down DBAccess on stopped instead of on release 
- 
CBL-2460 - Different C4QueryObservers share the same C4QueryEnumerator 
- 
CBL-2459 - A second, new Query observer should be notified immediately. 
- 
CBL-2458 - Changing a Query's parameters should re-notify observers 
- 
CBL-2450 - Intermittent: `_keyStore` not true when calling litecore::KeyStore 
- 
CBL-2374 - Slowness from reindexing the database when opening database 
Deprecations
- 
CBL-4316 - Replicator's getPendingDocumentIds() and isDocumentPending(String id) are deprecated 
- 
CBL-4315 - ReplicatorConfiguration's filters and conflict resolver properties are deprecated 
- 
CBL-4314 - ReplicatorConfiguration APIs with Database object are deprecated 
- 
CBL-4313 - MessageEndpointListenerConfiguration APIs using Database object are deprecated 
- 
CBL-4312 - URLEndpointListenerConfiguration APIs using Database object are deprecated 
- 
CBL-4311 - QueryBuilder : isNullOrMissing() and notNullOrMissing() are deprecated 
- 
CBL-4309 - QueryBuilder : DataSource's database() is deprecated 
- 
CBL-4306 - DatabaseChange and DatabaseChangeListener are deprecated 
- 
CBL-4264 - Increased security: store BasicAuthenticator password as a char[] and zero before release 
- 
CBL-4262 - ReplicatorConfiguration.setPinnedServerCertificate should take a Certificate 
- 
CBL-1727 - Improved naming for AbstractReplicatorConfiguration.ReplicatorType 
| For an overview of the latest features offered in Couchbase Lite 3.1, see New in 3.1 |