NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #1598 most downloaded on NuGet
The Official Couchbase .NET SDK.
Last release 1 months ago
04 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 55 of the last 60 stable releases
39 versions withdrawn
withdrawn after publishing
127 years old
223 releases · first in 1900
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-4287 : Key-value operations are now framed from what the connection negotiated rather than from client-side state; a mismatch could store a document under an ID that no longer mapped to its own location, or address the wrong collection. This includes GetAllReplicasAsync , which could dispatch a key before resolving the collection ID ( NCBC-4285 ). A connection whose HELO fails is now rejected instead of joining the pool reporting no server features.
NCBC-4291 : Lost-transaction cleanup no longer stops for one Cluster when another Cluster registered against the same keyspace is disposed; cleanup registrations are now owned per Cluster rather than shared across the process.
NCBC-4280 : A node is no longer discarded when one of its key-value connections fails to connect but another succeeds, which could leave the SDK with no usable nodes and report Cluster has not yet bootstrapped until the operation timed out; a failed bootstrap attempt is also no longer reported as a success carrying no inner exceptions.
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-4267 : Query error 2120 is now always reported as an authentication error, instead of only when the accompanying server message matched an expected form.
NCBC-4260 : A locked document accessed over Stellar ( couchbase2 protocol) is now retried until the operation timeout, matching the other SDKs, rather than failing immediately with UnambiguousTimeoutException .
NCBC-4259 : Stellar operations that are idempotent but still mutate — GetAndLock , GetAndTouch , and MutateIn — now raise AmbiguousTimeoutException on timeout rather than UnambiguousTimeoutException , since the mutation may have been applied.
NCBC-4263 : A retryable error arriving part-way through a Stellar query or analytics result stream now surfaces as RequestCanceledException with its error context, instead of leaking a raw gRPC exception to the caller.
NCBC-4265 : Corrected two Stellar error mappings that misreported the underlying condition: a rate-limit response is no longer reported as ValueToolargeException , and an unrecognised precondition failure is now reported immediately instead of being retried until the request timed out.
NCBC-4251 : Partially addresses unbounded internal waits: cluster version detection now honours a CancellationToken through to the underlying HTTP request, and the transaction ATR-initialisation lock wait is now bounded by the attempt’s remaining time so a stuck holder on another code path cannot block it indefinitely. Cancellation support is offered through a new IClusterVersionProviderCancellable interface, discovered via a GetVersionAsync extension method, so external IClusterVersionProvider implementations remain binary compatible.
NCBC-4269 : WaitUntilReady is now implemented for Stellar ( couchbase2 protocol) on both ICluster and IBucket , polling the gRPC health check until the server reports serving; it previously threw FeatureNotAvailableException . A timeout raises UnambiguousTimeoutException carrying the last observed serving status, and a caller-supplied CancellationToken surfaces as OperationCanceledException .
NCBC-4258 : Stellar ( couchbase2 protocol) connections now set the gRPC maximum receive message size required by the specification.
One column per quarter.
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-4243 : Fixed corruption when reading byte[] values from sub-documents. PersistentQueue<byte[]> , PersistentList<byte[]> , and LookupIn(…).ContentAs<byte[]>() returned the raw JSON fragment instead of the decoded bytes (a regression affecting 3.8.1+ and 3.9.0+).
NCBC-4244 : Extended the byte[] sub-document read fix to Protostellar ( couchbase2 protocol), and fixed LookupIn / MutateIn over Protostellar to honor a per-operation Transcoder instead of always using the cluster default.
NCBC-4176 : Corrected several KV sub-document behaviours to match the cross-SDK spec: LookupInAllReplicas now returns an empty stream on a top-level failure, a Get with projections omits non-existent paths (including nested ones) rather than emitting nulls, and a sub-document counter overflow now surfaces ValueInvalidException .
NCBC-4036 : Fixed the transactional query error "cause" so it deserializes correctly under the default serializer; a retryable CAS mismatch at commit is now retried instead of being surfaced as a non-retryable TransactionFailedException .
NCBC-4240 : TLS trust now loads the full certificate chain from a multi-certificate PEM (for example a cluster CA plus root CA), fixing CustomRootTrust handshake failures where only the first certificate was previously loaded.
NCBC-4214 : StellarCluster now disposes the HTTP handler it creates, fixing a leak of the handler and its keep-alive timers when the cluster is disposed.
NCBC-4242 : On .NET Framework, the per-ATR transaction cleanup time budget is now computed with sub-millisecond precision instead of being rounded to the nearest millisecond.
NCBC-4226 : Analytics link and dataverse identifiers now escape embedded backticks, preventing SQL++ identifier injection.
NCBC-4100 : SASL authentication now negotiates the strongest mechanism the server and client both support, and defaults to stronger SCRAM (SHA-256/SHA-512) instead of SCRAM-SHA1, aligning with NIST SP 800-131A. (netstandard targets remain SHA-1 due to platform limitations.)
NCBC-4218 : Applications that do not use transactions no longer eagerly start the transaction cleanup machinery, avoiding a parked thread-pool thread and the resulting latency spikes (for example on Ping ) in CPU-constrained environments such as Kubernetes pods.
NCBC-4009 : Lost-transaction cleanup now processes ATRs in adaptive batches, so it keeps pace under CPU pressure and stays within its configured window.
NCBC-4219 : Lost-transaction cleanup now resolves its collections lazily, per cleanup cycle, instead of resolving them eagerly (via sync-over-async) at construction.
- Upgraded OpenTelemetry.Api to 1.15.3 to address CVE-2026-40894 .
Download | API Reference | Nuget
NCBC-4038 : Query, Analytics, and Search requests that hit a node going offline during a rebalance now fail over to a healthy node within the request timeout, instead of surfacing a RequestCanceledException to the caller.
NCBC-4205 : A Stellar GetAsync with projections that match no fields now returns an empty JSON object ( {} ), matching the behavior of the classic SDK.
NCBC-4204 : Fixed an issue where explicitly-set false boolean flags (such as Deferred and IgnoreIfExists ) were rejected by the Stellar gateway, causing query index management operations to fail. This change also adds support for rotating authentication credentials at runtime on long-lived Stellar clusters via a new Authenticator(IAuthenticator) method on StellarCluster .
NCBC-4201 : Fixed Stellar timeout enforcement and unbounded retry loops, and ensured transient HTTP/2 transport errors (such as connection resets) are now safely retried rather than surfaced as fatal errors.
NCBC-4209 : ICluster now implements IClusterAuthenticator , so cluster.Authenticator() can be called without first casting to the concrete Cluster type.
NCBC-4202 : Improved Stellar observability so that spans carry the correct OpenTelemetry parent-child relationships and standard semantic attributes ( db.system , db.couchbase.service , db.operation , db.name ), including span status mapping for exceptions.
Upgraded OpenTelemetry.Api to 1.15.3 to address CVE-2026-40894 .
Nothing published for this version
- NCBC-4198 : Updated Snappier due to vulnerability.
Download | API Reference | Nuget
NCBC-4195 : Fixed an issue where an empty ConnectionPool would not resize on authenticator rotation.
NCBC-4198 : Updated Snappier due to vulnerability.
NCBC-4187 : Fixed an issue where config versions were sometimes null in logs.
NCBC-4118 : BucketSettings now only emits properties that were explicitly set when creating or updating buckets, rather than always sending default values.
- NCBC-4181 : Updated packages for vulnerable Microsoft.Bcl.Memory .
Download | API Reference | Nuget
NCBC-4192 : Resolved GetErrorMap error while bootstrapping.
NCBC-4139 : Implemented tracing spans and metrics for the Management API.
NCBC-4138 : Resolved several tracing issues to match the updated spec.
NCBC-4180 : Proper staging of expiry on mutations.
NCBC-4160 : Fixed an issue where AppTelemetry reports significantly lower metrics than it should.
NCBC-4153 : Fixed NullReference errors during rebalance.
NCBC-4151 : Ensured collection support is negotiated earlier in the connection process.
NCBC-4146 : Fixed an issue where a possible null byte was prepended to keys.
NCBC-4127 : Resolved Transaction issues with older (7.2) servers.
NCBC-4183 : Ensured correctness of recorded metrics and improved performance of AppTelemetry.
NCBC-4165 : Added Snappy compression support in Stellar (also addresses NCBC-4155 and NCBC-4156).
NCBC-4181 : Updated packages for vulnerable Microsoft.Bcl.Memory .
NCBC-4140 : Implemented Span Status and retries for tracing.
- NCBC-4096 : Deprecated support for MapReduce Views in the SDK.
Download | API Reference | Nuget
NCBC-4143 : Fixed an assertion issue in MultiplexingConnection.CloseAsync .
NCBC-4135 : HttpMessageHandler is now correctly recreated when the instance changes, regardless of authenticator type.
NCBC-4128 : Clear dead nodes after a select bucket failure.
NCBC-4115 : Resolved NullReferenceExceptions in some cases when calling PingAsync .
NCBC-4120 : Prevented Capella CA certificate disposal on .NET 10.
NCBC-4104 : Fixed DateTime parsing for Certificate Expiration Date.
NCBC-4094 : Operations that receive BucketNotConnected are now automatically retried.
NCBC-4055 : Fixed various Lock, Unlock, and Touch issues in Stellar.
NCBC-4061 : Fixed QueryIndexManager failures in Stellar.
NCBC-4054 : Fixed hardcoded Stellar gateway port.
Protostellar : This release introduces full support for Protostellar (the Cloud Native Gateway protocol). Protostellar provides a high-performance, gRPC-based client for Couchbase Server via CNG, offering improved scalability and simplified connectivity in cloud-native environments.
NCBC-4041 : Added support for .NET 10 LTS.
NCBC-4098 : Updated OpenTelemetry tags to align with the latest semantic conventions.
NCBC-4112 : Implemented JWT (JSON Web Token) Authentication.
NCBC-4116 : Support added for searching by cancellation of ConnectAsync .
NCBC-4079 : Initial support for Expiry in the Transactions API.
NCBC-4060 : Support for mTLS certificate refresh.
NCBC-4023 : Support added for Transcoders in Stellar.
NCBC-3996 : Added support for FTS-like pre-filters while performing Vector Search.
NCBC-4102 : Refactored the SDK to use Authenticators for improved security handling.
NCBC-4121 : Upgraded all Microsoft dependencies to the latest .NET 10 versions.
NCBC-4119 : Upgraded all 3rd party dependencies to the latest versions.
NCBC-4088 : Reworked mTLS certificate refresh implementation to align closer with the RFC.
NCBC-4090 : Initialized AppTelemetryCollector after bootstrapping.
NCBC-4078 : Improved BucketManager error handling for null bucket names.
NCBC-3960 : Added support for accessDeleted reads for subdocument replica reads.
NCBC-4096 : Deprecated support for MapReduce Views in the SDK.
Nothing published for this version
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-3898 : Cluster.Dispose now safely ensures disposed ChannelConnectionPool objects cannot be re-used.
NCBC-4053 : accessedDeleted should now be sent when using ReadPreference .
NCBC-4078 : BucketManager.GetBucketAsync now throws an ArgumentNullException instead of JsonException if bucketName is null.
NCBC-3996 : Added support for FTS Pre-Filters using Vector Search.
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-3900 : Added logic to ensure a disposed ChannelConnectionPool is not reused.
NCBC-4032 : Fixed serialization issues in Transactions when mixing System.Text.Json and Newtonsoft.Json .
NCBC-3961 : BucketSettings now supports VBucket number configuration.
NCBC-3998 : Added support for Zone-Aware read from replica to Collection API.
NCBC-3999 : Added GetReplicaFromPreferredServerGroup to Transactions API.
NCBC-3956 : Added support for Enhanced Read Committed Isolation to Transactions API.
NCBC-3778 : Added support for Binary objects in Transactions.
NCBC-4018 : Stellar client: Implemented Binary Collection KV API.
NCBC-3896 : Added SDK telemetry collection in Server.
NCBC-3846 : Sealed internal classes for devirtualization performance gains.
NCBC-3847 : Optimized reading of operation response lengths.
NCBC-3848 : Used bit blitting to improve performance when reading response headers.
NCBC-3861 : Improved CancellationTokenPairSource performance using pooling.
NCBC-3904 : Improved OperationBuilder performance using IBufferWriter<byte> .
NCBC-3905 : Used TimeProvider to improve unit test run times.
NCBC-3908 : Documentation no longer shows RequestPlus being used as a SearchOptions value.
NCBC-3962 : Improved SDK error messages for account lock/unlock.
NCBC-4034 : The operational SDK now prevents querying the Analytics service from Enterprise Analytics clusters.
- NCBC-4026 : Upgraded Grpc.Net.Client and other related Grpc dependencies, owing to CVE-2023-32731 ( GHSA-cfgp-2977-2fmm )
Download | API Reference | Nuget
NCBC-4027 : ForceIpAsTargetHost is now false by default. This is in line with most production needs, and will prevent hostname verification failing (since TLS certificates are tied to the hostname).
NCBC-3715 : For Cloud Native Gateway [CNG]: Subdoc Mutation Array now handles removeBrackets bool properly.
NCBC-4017 : ReplaceAsync CAS field is now properly set on the operation.
NCBC-4026 : Upgraded Grpc.Net.Client and other related Grpc dependencies, owing to CVE-2023-32731 ( GHSA-cfgp-2977-2fmm )
NCBC-4008 : CNG: Some new BucketSettings fields have been added to the request.
NCBC-4016 : CNG: Passing null content for Insert , Replace , or Upsert now throws InvalidArgumentException .
NCBC-4025 : Append and Prepend now write the CAS field to the operation.
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-4002 : Fixed an issue specific to .NET Framework when streaming HTTP results larger than 2GB, causing an OOM error ( Cannot write more bytes to the buffer than the configured maximum buffer size ).
NCBC-3992 : KvIgnoreRemoteCertificateNameMismatch = true was clearing other RemoteCertificateChainErrors . Further validation has been added, and this no longer occurs.
For use with SSL and certificates which contain the hostname (versus an IP address), with SDK 3.7.1, set ForceIpAsTargetHost = false as a ClusterOption (this is the default setting from release 3.7.2).
NCBC-4006 , NCBC-4010 : Improvements on error handling in the Transactions API.
NCBC-4005 : Implemented ExtParallelUnstaging in the integrated Transactions API.
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-3932 : Prevented maximum buffer size exceeded when fetching large datasets with Query.
NCBC-3978 : Resolved Query Error Deserialization with Custom System.Text.Json Options.
NCBC-3975 : Clarified error message for server version where RangeScan is unsupported.
NCBC-3899 : Improved RetryHandler signaling in ChannelConnectionPool .
NCBC-3976 : Adjusted default values for RangeScan batch configuration.
NCBC-3946 : Upgraded Snappier compression library to version 1.2.0 .
NCBC-3945 : Enabled Value-Based Equality for ScopeSpec and CollectionSpec .
NCBC-3902 : Introduced TryLookupIn for graceful handling of NOT_FOUND .
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-3885 : System certificate store should continue to be used in default TLS/SSL configuration.
NCBC-3964 : Fixed issue where queries were not evenly distributed amongst Query Nodes.
NCBC-3945 : Make ScopeSpec and CollectionSpec instance equality determinable.
NCBC-3948 : Add new TryGetRawParameter to ClusterOptions .
Download | API Reference | Nuget
Download | API Reference | Nuget
NCBC-3906 : A missing ConfigureAwait False in AttemptContext was causing a build error. This has now been fixed.
NCBC-3920 : Renamed Couchbase.Integrated.Transactions to Couchbase.Client.Transactions .
NCBC-3919 : A final refactor of the transactions integration to match the initial commit for ExtThreadSafety , ExtSdkIntegration , and others.
NCBC-3916 : ExtThreadSafety implementation into integrated transactions library.
NCBC-3915 : Allow TransactionConfig to configured via ClusterOptions .
NCBC-3913 : Improvements and bug fixes to the Cleaner for transactions.
NCBC-3912 : Renamed parameter to Error Constructor from err to cause .
NCBC-3897 : Added PreferReturns support for LookupIn , for internal use, to improve subdoc performance for transactions.
NCBC-3845 : Added ReadOnlySequence and IBufferWriter support to ITypeSerializer .
Nothing published for this version
NCBC-3883 : Updated System.Text.Json dependency, owing to a security vulnerability.
Download | API Reference | Nuget
NCBC-3840 : [Rider IDE] :nq is not a valid format specifier notice now correctly uses Debugger Display reference.
NCBC-3878 : Randomized seed order of hosts enabled in the Connection string
NOTE: Random seed order must be enabled with ?random_seed_nodes=true in the connection string. This will be the default in a future release.
NCBC-3879 : .NET SDK was setting span attributes directly on the operation’s span, rather than on the despatch span. Attributes have now been added to the DispatchSpan for Query and KV operations, but not removed from the operation’s span in order not to break user queries that target those specific traces.
NCBC-3883 : Updated System.Text.Json dependency, owing to a security vulnerability.
NCBC-3851 : More Contextual labels have been added to metrics, as part of improvements to the observability spec.
Version 3.6.3 is a hotfix release. Some NuGet packages were upgraded as a result of high impact security issues, NCBC-3839 . These should not impact a
Version 3.6.3 is a hotfix release. Some NuGet packages were upgraded as a result of high impact security issues, NCBC-3839 . These should not impact any users of CouchbaseNetClient, as they are backward compatible updates. However, if you find an incompatibility, you can add a direct reference to the old version of those packages as a dependency in your own project.
Download | API Reference | Nuget
NCBC-3863 : Performance problems and timeouts fixes during rebalance when the cluster contains non-KV nodes.
NCBC-3832 : Query timeout set to exceed 100 seconds is now respected.
NCBC-3818 : QueryErrorContext Statement parameter is now set properly.
NCBC-3842 : Newtonsoft deserializing UTF8 surrogate pairs fixed for exceptions and buffer overflow.
NCBC-3849 : Orphaned responses now sent to metrics for untraced operations.
NCBC-3850 : Timeouts now recorded to metrics in ClusterNode.ExecuteOp .
NCBC-3852 : TryReadMutationToken header length check.
NCBC-3854 : Improvements made for LightweightStopwatch unit test.
NCBC-3876 : CancellationTokenSource is not disposed when returned to pool on legacy frameworks.
NCBC-3839 : Updated packages based on BlackDuck scan.
NCBC-3710 : Included operation outcome tag in operation metrics.
NCBC-3837 : Provide easy configuration to exclude duplicative metrics from OpenTelemetry .
- NCBC-3817 : Vulnerability in System.Text.Json 8.0.0 is fixed.
Version 3.6.2 is a hotfix release. Microsoft disclosed a CVE affecting their System.Text.Json (STJ) library on the 9th of July, 2024. This release upgrades STJ to the patched version in our SDK.
Microsoft CVE on GitHub
Download | API Reference | Nuget
NCBC-3817 : Vulnerability in System.Text.Json 8.0.0 is fixed.
NCBC-3821 : Updated CouchbaseNetClientReleasedVerison to 3.6.2.
NCBC-3726 : Applied some miscellaneous performance optimizations to transcoders.
NCBC-3795 : Reduced duplicate operation handling code in ClusterNode .
Version 3.6.1 is a hotfix release.
Version 3.6.1 is a hotfix release.
Download | API Reference | Nuget
NCBC-3791 : BucketConfig version used to be compared against the latest applied config, not the latest one received.
NCBC-3698 : Manually setting ScopeName and/or CollectionName in the CollectionQueryIndexManager API’s options will now throw an InvalidArgumentException . Previously, the SDK was ignoring the ScopeName and CollectionName in options, instead of throwing InvalidArgumentException as per RFC.
NCBC-3780 : Transactions: QueryContext is now copied when retrying SingleQueryTransactions .
NCBC-3798 : VectorSearch: Passing in empty vectors now throws InvalidArgumentException
Version 3.6.0 is the first release of the 3.6 series.
Version 3.6.0 is the first release of the 3.6 series.
Download | API Reference | Nuget
There is an edge case that can cause high CPU usage against Couchbase Server 7.6 and later. Users are advised to upgrade to 3.6.1.
NCBC-3572 : For management services, CancellationTokens are now more accurate to the operation’s lifetime.
NCBC-3702 : Stellar client: Use DefaultSerializer as default at Cluster level
NCBC-3760 : Fixed an issue regarding passing an X509CertificateFactory in ClusterOptions .
NCBC-3768 : Aligned Boolean search API to RFC.
NCBC-3775 : IndexAlreadyExists is now properly thrown.
NCBC-3785 : Transactions: DocumentMetadata deserialization fixed.
NCBC-3789 : Updated Release version tag in SDK Directory.Build.Props .
NCBC-3794 : Removed infinite loop in ConfigPushHandler , which was causing high CPU usage.
NCBC-3788 : Support added for base64 encoded vector types.
NCBC-3771 : Refactored RetryOrcestrator for Data Service operations to be clearer.
NCBC-3792 : Optimize for larger InFlightOperationSet for high latency connections.
NCBC-3796 : Updated local build version to 3.6.0.
NCBC-3797 : Updated `VectorSearch’s InterfaceStability to Committed.
Nothing published for this version
Version 3.5.3 is the fourth release of the 3.5 series.
Version 3.5.3 is the fourth release of the 3.5 series.
Download | API Reference | Nuget
Microsoft disclosed a CVE affecting their System.Text.Json (STJ) library on the 9th of July 2024. This release upgrades STJ to the patched version in our SDK.
Microsoft CVE on GitHub
NCBC-3817 : Upgrade System.Text.Json to patched version.
This release also backports fixes brought to ConfigPushHandler in releases 3.6.0 and 3.6.1:
NCBC-3811 : Backports ConfigPushHandler fixes to 3.5 branch (See also NCBC-3791 , NCBC-3794 ).
Version 3.5.2 is the third release of the 3.5 series.
Version 3.5.2 is the third release of the 3.5 series.
Download | API Reference | Nuget
Owing to NCBC-3794 , it is recommended that all customers using Server 7.6 or later upgrade to SDK 3.5.3, or SDK 3.6.2 or later, immediately.
NCBC-3745 : MultiplexingConnection will throw a SocketNotAvailableException if disposed.
NCBC-3756 : Handle empty VBucketMap in server config.
NCBC-3758 : Fixed regression where PersistentQueue was not dequeueing items in original FIFO order.
NCBC-3764 : Fixed issue where GetAnyReplica / TaskHelpers.WhenAnySuccessful could potentially cause deadlocks using the .NET Framework.
NCBC-3769 : SDK will now adapt to new cluster topology if only a port has changed (as in some Alternate Address configurations).
NCBC-3772 : Fixed a regression where configs were being applied to buckets they did not belong to, including cluster-level config.
NCBC-1622 : Snappy Compression — using the Snappier library — is now merged into the main SDK.
NCBC-3738 : Support added for scoped eventing functions.
NCBC-3746 : Performance optimizations added to ArrayExtensions .
NCBC-3759 : ExceptionDispatchInfo was being used to capture and rethrow the Exception stack trace at the time the exception was originally caught. ClusterContext bootstrap is now used to track per-node bootstrap errors, using ExceptionDispatchInfo instead of Exception . This may result in more accurate stack traces now or in future runtimes.
NCBC-3770 : Reduced the amount of DEBUG logging around Config Push — the additional information is now logged at TRACE level.
Version 3.5.1 is the second release of the 3.5 series.
Version 3.5.1 is the second release of the 3.5 series.
Download | API Reference | Nuget
NCBC-3690 : FIT Management: Implement Scoped Search Index Management.
NCBC-3699 : FIT Query: QueryOptionTest failures fixed.
NCBC-3700 : FIT KV: New Subdoc errors fixed.
NCBC-3703 : FIT Stellar: InvalidArgument and DocumentTooDeep now handled.
NCBC-3716 : Fixed a regression in KV throughput against Trinity during rebalances.
NCBC-3720 : ClusterChangeMapNotification was reported in logs and errors in place of KV ops — this has been fixed, and SET/Upsert is now correctly reported.
NCBC-3721 : Fixed a regression in 3.5.0 which would not allow building a Cluster with LoggingMeter disabled.
NCBC-3724 : Fixed a known issue with Snappier implementation in the SDK preventing bootstrap .NET with SDK v3.4.10 onwards against server v7.6.0.
NCBC-3725 : Fixed a bug where ConfigPushHandler wasn’t performing well under massive config push spam.
NCBC-3727 : When Faster Failover with ClustermapChangeNotification is enabled, config polling was short circuited, causing the SDK to rebootstrap because it thinks that it cannot connect to the cluster with the current nodes list. This behavior has been fixed.
NCBC-3732 : Fixed logic bug that was causing the ConfigPushHandler to skip all new clustermap config revision.
NCBC-3734 : The NRE was causing config revisions to be skipped which meant retries for NotMyVBucket were happening multiple times using the same config revision.
NCBC-3737 : KvNotMyBucket retried with old config.
NCBC-3742 : Reduced push config spam in ConfigPushHandler.
NCBC-3747 : When CB Server 7.2 sends a cluster map changed notification, it is sent with a JSON body containing the new map. After deserializing, we were not replacing $HOST with the correct values, causing the in-memory map to become corrupt and subsequent operations to timeout. This has been fixed, and now after deserializing a pushed notification with a cluster map the SDK replaces $HOST with the endpoint, and applies any overridden network resolution settings. This matches the behavior when we receive a BucketConfig back from an explicit request.
NCBC-3752 : Fixed a race condition affecting KeyMapper being updated out of sync with CurrentConfig .
NCBC-3753 : The SDK will now only publish a config if it’s a higher revision than the current one.
NCBC-3749 : Log the ConfigVersion used by an operation throughout the SDK.
NCBC-3723 : Fixed a NullReferenceException in ConfigPushHandler , which meant the code could jump to the error handling and log/exit instead of processing the config.
NCBC-3740 : When Faster Failover is available, a GetClusterMap request is no longer the only response to NotMyVBucket .
NCBC-3722 : Fixed an IndexOutOfBounds error processing cluster map during ConfigUpdateAsync .
NCBC-3719 : There is a bug in the server, and an Unlock operation with an invalid Cas returns Locked instead of CasMismatch status. The SDK now handles this as a CasMismatch .
NCBC-3739 : A GetConfigMap begin sent is generally a high priority because it indicates server configuration is outdated due to failover or rebalance. Added a method (which currently only applies to the default ChannelConnectionPool ) which allows an operation to be jumped to the front of the line to be sent. It randomly selects the connection from the pool to provide distribution rather than relying on the queue to distribute.
NCBC-3744 : Moved ConfigPushHandler from ClusterNode to CouchbaseBucket .
NCBC-3748 : Tracking basic metrics for ClusterMapChangeNotification .
NCBC-3751 : Every Scope and Collection fetch was being logged in DEBUG mode, adding spam to the logs and roughly doubling the log size. We have now hanged logging there, and also for when waiting for polling, to TRACE . for a config.
Nothing published for this version
Version 3.5.0 is the first release of the 3.5 series. A number of regressions means that it is not recommended for use — release notes are retained he
Version 3.5.0 is the first release of the 3.5 series. A number of regressions means that it is not recommended for use — release notes are retained here for reference, as they apply to all subsequent releases.
Download | API Reference | Nuget
NCBC-2901 : Fixed the percentiles printed by LoggingMeter to comply with the RFC.
NCBC-3058 : Eliminated the App.Metrics dependency and implemented a better approach for tracking logging meter histograms.
NCBC-3314 : Renamed SubdocExceptionException to SubdocException .
NCBC-3336 : Made it possible to get a collection_id from a QueryIndex object. Fixed the creation of named primary indexes. Added a conditional field to QueryIndex .
NCBC-3564 : No error is thrown if the cluster or the bucket authorization fails.
NCBC-3604 : Removed Term field from TermRangeQuery .
NCBC-3612 : Added an exception handling when calling ContentAs on an Exist spec.
NCBC-3624 : When the vector search query options have a value of k < 1 , .NET throws a CouchbaseException instead of the expected InvalidArgumentException .
NCBC-3633 : SubdocMutation Replace/Remove uses OpCode.Set and OpCode.Delete when an empty path is passed.
NCBC-3635 : Added a ReadOnlyCollection<Exception> public backing field to contain the inner exceptions of the AggregateException field.
NCBC-3637 : Updated AsyncStreamState to handle all responses enumerated in the RFC for RangeScan .
NCBC-3645 : Fixed error thrown against maximum allowed path length.
NCBC-3646 : LookupInAnyReplica and LookupInAllReplicas now throw a FeatureNotAvailable error on servers that do not support subdoc.ReplicaRead .
NCBC-3649 : Index now updates directly into the response body to prevent unnecessary heap application or memory copy.
NCBC-3657 : LookupInSpec.Get() now returns GetFull when the given path is empty.
NCBC-3661 : Ensures that a node with the management service is selected so that NullReferenceException is not thrown.
NCBC-3664 : Set the expiry of GetResult to DateTime.MaxValue when the secondsUntilExpiry returned spec is 0.
NCBC-3666 : Added a backing field for Key in OperationBase . Added a byte[] EncodedKey field to automatically encode and check the size of the Key when creating an operation.
NCBC-3676 : Enumeration now uses the RetryHandler to read ahead. It then caches the results and enumerates them first if they are successful.
NCBC-3679 : Fixed a bug in QueryErrorContext where the DebuggerDisplay message had an invalid value of :ns instead of ,ns .
NCBC-3686 : Throws an exception before sending the request if no vectors are provided.
NCBC-3696 : Fixed a bug in SearchIndexManager for scoped indexes.
NCBC-3701 : Added missing API overloads to comply with the RFC.
NCBC-3705 : Fixed spelling error in ClusterOptions code comments.
NCBC-3709 : Updated KV operation metrics to post a single duration for each operation, instead of one duration for each individual retry. The operation count no longer includes retries.
NCBC-3673 : If the server does not support vector search or ScopedSearchIndexes , a FeatureNotAvailable error is thrown.
NCBC-3620 : Removed unused imports and unnecessary full qualified namespaces. Moved local functions under the return keyword. Made constants private. Updated local functions from camel case to pascal case.
NCBC-3617 : Added protostellar support for a new scheme for connecting to the gateway.
NCBC-3667 : If the SDK receives a retry-now response, it retries the operation.
NCBC-3671 : If the server cannot find the given index, it throws an IndexNotFoundException error.
NCBC-3648 : Improved the memory handling of large operation responses.
NCBC-3554 : Added retry handling to protostellar.
NCBC-3597 : Removed Couchbase.Stellar and Couchbase.NetClient from Couchbase.csproj .
NCBC-3601 : Added toggling between a StellarCluster creation and a regular Cluster creation based on the schema detected when Cluster.ConnectAsync is called.
NCBC-3602 : Fixed a bug where an error is thrown if a CAS of zero is sent to CNG or protostellar.
NCBC-3655 : Added StellarQueryClient so that failed queries can be retried.
NCBC-3670 : Removed InvalidArgument fail-fast for LookupinAnyReplica .
NCBC-3672 : Fixed failing vector search tests.
Version 3.4.15 is the sixteenth release of the 3.4 series.
Version 3.4.15 is the sixteenth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3716 : If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+. While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.
NCBC-3599 : The initial parameter of Increment and Decrement operations is now unset by default. This means the SDK will throw a DocumentNotFoundException upon calling Increment or Decrement with a non-existing key without providing an initial value.
Example:
await collection.Binary.IncrementAsync("thisKeyDoesNotExist").ConfigureAwait(false); → Now throws DocumentNotFoundException
await collection.Binary.IncrementAsync("thisKeyDoesNotExist", options ⇒ options.Initial(0)).ConfigureAwait(false); → Creates the document with counter at 0
NCBC-3599 : Fixed SDK bugs related to Nullability of Increment, Decrement, and related options.
NCBC-3565 : Added error handling for "index does not exist" query error.
NCBC-3579 : Support DocumentNotLocked exception when collection.Unlock() is called on a document that is not locked.
NCBC-3606 : Added SDK Support for Scoped Search Indexes.
NCBC-3596 : Support added for maxTTL value of -1, for collection "no expiry".
Version 3.4.14 is the fifteenth release of the 3.4 series.
Version 3.4.14 is the fifteenth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3716 : If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+. While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.
NCBC-3434 : A regression introduced in a recent release prevented WaitUntilReady from pinging nodes — this has been fixed, and WaitUntilReady now correctly detects state.
NCBC-3503 : There was a possibility of ClusterVersionProvider.GetVersionAsync failing, if nodes have no ManagementUri , owing to randomized node order. This has been fixed, and GetRandomManagementUri() should never now throw NullReferenceException .
NCBC-3530 : Made the ConnectionString class now accept couchbase2 schema.
NCBC-3532 : Added AsReadOnly record to Index APIs options.
NCBC-3538 : Improved recovery time in Config Push to 300ms.
NCBC-3541 : Added AsReadOnly record to Bucket Management APIs options.
NCBC-3551 : Added AsReadOnly record to Collection Management APIs options.
NCBC-3568 : Added AsReadOnly Record to GetAllScopesOptions.
NCBC-3516 : Made fallback usage of DefaultSerializer trimmable.
NCBC-3518 : Removed internal transcoder dependencies on DefaultSerializer .
Nothing published for this version
Version 3.4.13 is the fourteenth release of the 3.4 series.
Version 3.4.13 is the fourteenth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3716 : If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+. While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.
NCBC-3397 : IOperation.Elapsed was not correctly counting duration between retries — the stopwatch field of IOperation/OperationBase is stopped in HandleOperationCompleted() and never re-started. This has now been fixed, and the Elapsed field of OperationBase now correctly increments with the stopwatch time after each retry cycle.
NCBC-3498 : Added code documentation to PersistentList as the internals use reference comparisons, but there is no guarantee that internally the document might be reloaded by the database. The documention instructs users to override the Object.Equals method on their POCOs so that that values of the objects will be compared and not the objects' reference.
NCBC-3510 : Fixed a regression in Config Push Notification / Faster Failover performance. Config Push notifications are now handled by a single thread per node in a LIFO manner, and skip out of date push notifications, as well as providing more logging around config updates to help troubleshoot in the future. Additionally, GetClusterConfig asks for the old version, not the pushed version.
NCBC-3526 : The Search Service’s NumericRangeQuery’s `MaxInclusive property was defaulting to false . It now defaults to true , in line with the rfc .
NCBC-3543 : DefaultSerializer will now correctly handle Unicode surrogate pairs on buffer boundaries.
NCBC-3472 : Support added to bucket settings for change history feature.
NCBC-3502 , NCBC-3506 : Merging couchbase-net-stellar into couchbase-net-client , for upcoming Cloud Native Gateway support.
NCBC-3481 : The legacy Enum.GetValues(Type) overload is not AOT-compatible. Added conditional compilation to use the Enum.GetValues<TEnum>() overload on .NET 6 and later.
NCBC-3487 : Reduced reliance on SerializeWithFallback , which is incompatible with trimming and NativeAOT .
NCBC-3488 : Delaying creation of CollectionQueryIndexManager , which will allow it to be left off the DI container, and trimmed out of the output executable if unused.
NCBC-3489 : Implemented an in-flight operation limit to provide backpressure. The previous design allowed a single connection from the connection pool to collect a large number of in-flight operations, rather than ensuring a more even spread of operations across connections in the pool. This potentially allowed small operation may be blocked waiting for large operation to pass over the network socket. A more even spread of operations doesn’t guarantee this will be the case, but does make it more likely.
NCBC-3508 : Support HTTP response streaming in legacy .NET runtimes
.NET 4 consumers may opt-in to HTTP response streaming so long as they ensure they properly dispose of any returned XXXResult objects rather than leaving them dangling and potentially causing a connection leak. If they do choose this behavior then System.IOException cases previously addressed by NCBC-3433 should not occur due to the new pattern for disposing of HttpClient .
.NET 6 and newer consumers may now choose to opt-out of HTTP response streaming if desired.
NCBC-3539 : System.Text.Json is now used to deserialize document expiry — for improved performance and compatiblity with trimming and NativeAOT .
NCBC-3545 : Fixes a regression introduced in 3.4.12 where a ClusterNode might be disposed and then reused, which causes an exception to be raised. This issue is raised if the cluster is configured to use Alternate Addressing, but not DNS-SRV.
Version 3.4.12 is the thirteenth release of the 3.4 series.
Version 3.4.12 is the thirteenth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3716 : If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+. While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.
NCBC-3490 : When a request includes a CAS, MutateIn should now throw a CasMismatch exception if the status is KeyExists . Otherwise, for KeyExists , it will continue to throw DocumentExistsException .
NCBC-3493 : When a Private Link is enabled, the SDK was not properly using the provided config and all of the VBuckets were mapped to the same node. This could cause a recurring KvNotMyVBucket , which would eventually become an AmbiguousTimeoutException thrown to the user. This behavior has now been fixed — changes have been made so that NetworkResolution is propagated to BucketConfig , duplicate nodes not added to nodes list, and entries in LookupDictionary are only made for nodes with actual ports.
NCBC-3496 : WaitUntilReady should now use the cluster map and not the ServiceType enum by default — removing spurious error messages about services which are not being used.
NCBC-3455 : During a MultiLookup , the SDK should now correctly throw DocumentUnretrievableException in LookupInAnyReplica , for key not found.
NCBC-3465 : Exist specs in LookupInResults was not returning ContentAs — it now returns bool Exist value serialized as T when calling LookupinResult.ContentAs<T>() , as per RFC.
NCBC-3473 : GetInAnyReplica could fail when it should have been successful, throwing DocumentUnretrievable — it should now return the first successful operation (unless all fail).
NCBC-3484 , NCBC-3485 , NCBC-3486 : Several bugs in LookupInAny and LookupInAllReplicas have been fixed.
NCBC-3494 : Added a client-side check for TooManySpecs in LookupIn .
NCBC-3387 : Removed internal keword from ICollectionQueryIndexManager , facilitatiing better testing.
NCBC-3479 : Added trimming and AOT annotations to Analytics and Search clients.
NCBC-3492 : When an EConfigOnly (0xd) response is received, the SDK assumes that this may mean a stale config, and so fetches a new config and publishes it for processing.
NCBC-3495 : Moved LookupInAllReplicasAsync and LookupInAnyReplicaAsync into ICouchbaseCollection .
NCBC-3497 : Added additional DEBUG logging ConnectionFactory.CreateAndConnectAsync , to aid TLS troubleshooting.
Version 3.4.11 is the twelfth release of the 3.4 series.
Version 3.4.11 is the twelfth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3716 : If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+. While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.
NCBC-3446 : When passed as readonly(true) , Readonly Query was accepting UPDATE query and was updating the document in collection, when it should have failed. This should no longer occur.
NCBC-3448 : IndexNotFoundException was not raised when QueryIndexManager.watchIndex was called with a non-existent index — this has been fixed, and the correct exception should now be thrown.
NCBC-3460 : Fixed a bug where a null reference exception was sometimes occurring when bootstrapping a Memcached bucket.
NCBC-3467 : Fixed a regression in lambda-based sub doc API, due to LookupInResult changes.
NCBC-3449 : The SDK was throwing a NullReferenceException for the ITypeSerializer when setting a Transcoder in the Options due to erroneous logic in CouchbaseCollection . Transcoders are now used for deserialization, and RawBinary/RawString Transcoders now initialise the DefaultSerializer when instantiated (like for JsonTranscoder) which, along with changed logic in CouchbaseCollection when returning LookupInResults , means that this no longer occurs.
NCBC-3466 : Improvements for internal testing.
NCBC-3482 : Faster Failover/Push config is now ensabled by default.
NCBC-3130 : For improved performance and trimmability, OrphanReporter has been rewritten to serialize POCOs using a JsonSerializerContext rather than using LINQ objects from Newtonsoft.
NCBC-3402 : Improved trimming support for internal DI.
NCBC-3404 : Replaced Newtonsoft.Json with System.Text.Json , using source generated JsonSerializerContext , for Eventing management. This is now compatible with trimming and AOT compilation, and should also provide performance benefits. Use System.Text.Json for Eventing Management
NCBC-3405 : Added trimming annotations to LoggingMeter .
NCBC-3420 : The DefaultSerializer was used to deserialize query plans — for consistency, this now uses System.Text.Json .
NCBC-3453 : Reduced the default value for the IdleHttpConnectionTimeout client setting to 1 second. The previous default (4.5 seconds) was too close to the 5-second server-side timeout, and could lead to spurious request failures.
NCBC-3471 : Microsoft DI Extensions ( Couchbase.Extensions.DependencyInjection ) are now more compatible with trimming and AOT compilation. The changes also help application start up speed in non-AOT cases.
v3.4.10 is incompatible with Server 7.6 and later — do not use. This version of the SDK has been deprecated; use 3.4.11 or greater. Details can be fou…
v3.4.10 is incompatible with Server 7.6 and later — do not use. This version of the SDK has been deprecated; use 3.4.11 or greater. Details can be found in NCBC-3724 .
Version 3.4.10 is the eleventh release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3424 : Future server versions will add an extra item to the features list returned, which effects the parsing of the body. This change prepares for the effects of those flexible framing extras.
NCBC-3445 : At some point, SubDocMultiPathFailureDeleted was added as a special case of SubDocMultiPathFailure , but from an SDK point of view they should be handled them similarly. This change ensures that when doing a LookupIn against a Tombstone with AccessDeleted flag set, SubDocMultiPathFailureDeleted response status should not throw, and should be treated the same as SubDocMultiPathFailure .
NCBC-3423 : Added GetClusterConfigWithKnownVersion support to Hello.
NCBC-3425 : Added a HELLO flag called DedupeNotMyVbucketClustermap .
NCBC-3427 : Added SnappyEverywhere flag support, in preparation for the .NET SDK supporting Compression.
NCBC-3428 : Added ClustermapChangeNotificationBrief flag support to subscribe to configuration notifications, where available.
NCBC-3429 : Added support for Duplex mode flag to Hello, for Unordered Execution.
NCBC-3430 : Added ClustermapChangeNotification flag support.
NCBC-3421 : Deserializing K/V operations with the DefaultSerializer was allocating an excessive number of buffers for each operation. This change introduces a reusable pool of text readers which reads directly from the memory buffer without stream-related overhead or intermediate buffers. This results in a performance gain and a significant reduction in heap allocations when deserializing from a memory buffer.
NCBC-3432 : Added additional logging at the IO level to capture more details of exceptions thrown when sockets are opened.
NCBC-3438 : Several of the listed dependencies for the .NET 6 target were unnecessary, as those packages are now included in the .NET framework and we’re not targeting a higher version. We have removed these NuGet dependencies for the .NET 6 Target, which will reduce restore time and size for consumers.
Version 3.4.9 is the tenth release of the 3.4 series.
Version 3.4.9 is the tenth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3367 : The SDK was returning QueryIndexes with null values for Bucket/Scope/Collection names (BucketName should return the Keyspace value when null). Added BucketName field with backing field for conditionally returning either BucketNameField or Keyspace.
NCBC-3417 : MutateIn was modifying global Transcoder setting; nothing registered as a Singleton should be mutable and changes have been made to ensure that this can no longer happen.
NCBC-3433 : Fixed regression in 3.4.8 which could cause IOException if Query has no content.
NCBC-3412 : Support Query with Read from Replica
NCBC-3418 : Experimental support for HTTP2 when using the Query service
NCBC-3351 : SDKs must encode URIs
NCBC-3437 : Add .NET 4.8 back to .NET SDK unit and integration tests
NCBC-3384 : Resolve all compiler warnings
NCBC-3386 : Add conditional support for TLS 1.3 for .NET 6.0 and higher
NCBC-3401 : Scan: Implement latest RFC revision (#9)
NCBC-3403 : Improve memory usage of SearchClient
Version 3.4.8 is the ninth release of the 3.4 series.
Version 3.4.8 is the ninth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3392 : Scan: RangeScanCreate operation did not receive the MutationTokens from the ScanOptions , as ConsistentWit was not sent in RangeScanCreate packets. This has been remedied, and MutationState tokens are now sent in RangeScanCreate packets.
NCBC-3395 : Scan: Sampling Scan Limit parameter must be < 0. An InvalidArgumentException is now thrown when creating a SamplingScan with Limit < 0.
NCBC-3399 : Fixed edge case in bootstrapping around NRE in PruneNodes .
NCBC-3391 : Scan: Implemented PrefixScan helper method.
Version 3.4.7 is the eighth release of the 3.4 series.
Version 3.4.7 is the eighth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3350 : NotMyVBucket will no longer result in TaskCancellationException .
NCBC-3376 : Correct timeout response will now be returned during a rebalance.
NCBC-3379 : OpenTelemetry tracing was losing track of the parent span in cases where the parent span was not sampled, resulting in orphaned spans and increased trace volume. By capturing the ExecutionContext , if any, when queuing operations on the ChannelConnectionPool , and sending the operations on the captured context, the spans are now correctly sampled.
NCBC-3380 : When IOperation.ExtractBody is called it should always dispose of the returned IMemoryOwner, generally with a using statement; . Failure to do so will cause the buffer to be garbage collected rather than returned to the ArrayPool — which can lead to memory holes and decreased GC efficiency. This has no been fixed, and should no longer occur.
NCBC-3382 : Streaming support now working correctly for Analytics, Query, and Views.
NCBC-3383 : Couchbase.ServiceNotAvailableException: Service n1ql is either not configured or cannot be reached.
NCBC-3390 : Get Cluster Map operations were linked to the bootstrap trace, cusing erroneous large traces. A check has been added which fixes this.
NCBC-3392 : Scan: Use ConsistentWith MutationTokens for RangeScanCreate Operation.
NCBC-3393 : Fixed regression where OperationCanceledException continues after rebalance completes.
NCBC-3391 : Scan: Implemented PrefixScan helper method.
NCBC-2394 : Query 4040 is now handled like 4050, et al — e.g. prepared statement cache for it is removed and transparent reprepare is performed.
NCBC-3354 : Changed logging to use LoggerMessage in Channel classes. Added ChannelConnectionEvent in LoggingEvents.
NCBC-3378 : Improve GET_CID use in CouchbaseBucket .
NCBC-3381 : Removed ClusterNodesChanged and VBucketMapChanged (which are only used internally) from BucketConfig .
Version 3.4.6 is the seventh release of the 3.4 series.
Version 3.4.6 is the seventh release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3300 : SamplingScan: Fixed bug in limiting option
NCBC-3301 : SamplingScan: Fixed bug where requesting too few documents returned incorrect responses.
NCBC-3345 : In the latest development server versions, 0xD is occasionally returned by the server.
NCBC-3273 : Added SDK Support for Native KV Range Scans.
NCBC-3364 : Improved hot-path performance in ClusterContext.GetOrCreateBucketAsync .
Version 3.4.5 is the sixth release of the 3.4 series.
Version 3.4.5 is the sixth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3334 : KvNotMyVBucket errors after add node + rebalance.
NCBC-3337 : NullReferenceException when bootstrapping against a non-existent bucket.
NCBC-3347 : IGetResult shouldn’t have an internal Status property.
NCBC-3360 : Fix QueryContext bug in QueryIndexManager.
NCBC-3362 : SDK writes to _default collection when intended collection is dropped.
NCBC-3363 : SubDoc SuccessDeleted not treated as Success.
NCBC-3365 : Change Search Metadata setters from internal to public.
NCBC-3369 : Ensure ClusterNode list matches Cluster config after rebalance up/down.
NCBC-3372 : Removed/rebalanced out node continues to be hit with http requests.
NCBC-3220 : Properly map server query timeout while streaming (1080).
NCBC-3308 : Scan: Refactor sorting/merging into non-blocking implementation.
NCBC-3332 : Protostellar: Implement KV SubDoc.
NCBC-3355 : Update FIT performer.
NCBC-3274 : Add public API for KV Range Scan.
NCBC-3370 : Lock on sync object instead of nodes list.
Version 3.4.4 is the fifth release of the 3.4 series.
Version 3.4.4 is the fifth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3340 : When an op timed out, the socket connection was closed and then recreated. With a large number of unexpected timeouts, many sockets could be left in TIME_WAIT . Making ChannelConnectionProcessor reuse connections after timeout should reduce the number of file descripters and local ports left open.
NCBC-3356 : Cluster level query_context , which is not supported by Server versions earlier than 7.0, has been removed for these versions.
NCBC-3343 : Fixed a bug where SelectBucket may not be called on the internal node used as the bootstrapping endpoint. This resulted in a BucketNotConnected error for certain ops — which will now no longer occur.
NCBC-3309 : Handled query_context changes by adding to every index manager request.
NCBC-3348 : When ConnectionString hosts are null, the SDK now throws an exception, with a more explicit error message.
NCBC-3353 : Removed build targets for out-of-support versions of .NET Framework.
Version 3.4.3 is the fourth release of the 3.4 series.
Version 3.4.3 is the fourth release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3316 : Scan: Refactored operation parsing, so RangeScanContinue.OnNext() doesn’t get called after the first batch of a partition has been consumed.
NCBC-3329 : NamedBucketProxyGenerator and NamedCollectionProxyGenerator caches were not thread-safe during start up. This applies primarily to unit testing scenarios — most MVC applications were not affected, as it doesn’t affect anything once the DI container is configured, because startup DI registration is single-threaded.
NCBC-3331 : Retrying Named Prepared Queries from the SDK — added an example of a custom RetryStrategy for the case where you do not want the named prepared statement to be retried, and want a fast-fail in that specific case and tests for named parameters.
NCBC-1999 : Added a TryGetAsync method to handle the case where KeyNotFound is returned by the server — for improved performance over throwing an exception.
NCBC-3293 : Handle case where a response contains a document that exceeds 8120b [ sic ] — provided a test to show that large documents are correctly parsed and returned to the caller.
NCBC-3307 : Scan: Implemented BatchByteLimit , BatchItemLimit , and BatchTimeLimit .
NCBC-3318 : Protostellar: Exposed KV operation option values publicly, via read-only record copy.
NCBC-3326 : Encode Duration was tracked twice for the Threshold Tracing — as RequestSpan was disposed more than once. This has now been fixed, and the correct value should be returned.
Version 3.4.2 is the third release of the 3.4 series.
Version 3.4.2 is the third release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3269 : InternalServerFailureException error message caught in SDK Query Response
NCBC-3297 : KV Range Scan breaks with NCBC-2167
NCBC-3305 : Pickup latest range scan RFC changes
NCBC-3310 : Scan: Fix RangeScanContinue parsing offset
NCBC-3313 : Sub-Document LookupInAsync.Exists throws SubdocException when path not found
Version 3.4.1 is the second release of the 3.4 series.
Version 3.4.1 is the second release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3204 : CombinationTest failure: Test_GetAndLockAsync_Locked
NCBC-3283 : Search: Min function throws an exception if the argument is > 0
NCBC-3295 : KeyNotFound / DocumentNotFound should not trigger the Circuit Breaker
NCBC-3296 : PopulateCID caches Exceptions forever
NCBC-3298 : "couchbases://" Does not automatically enable TLS in SDK 3.4
NCBC-3304 : ObjectDisposedException on GET command during rebalance
NCBC-2167 : Refactor operation callback handling and exception mapping
Version 3.4.0 is the first release of the 3.4 series.
Version 3.4.0 is the first release of the 3.4 series.
Download | API Reference | Nuget
NCBC-3246 : EndpointDiagnostics.State always returns "Authenticating" for KV and not implemented per RFC
NCBC-3266 : A timeout may have a status of "success"
NCBC-3281 : Erroneous time reported in timeout log message.
NCBC-3286 : RetryHandler does not apply backoff when a request is not AlwaysRetry.
NCBC-3271 : Error Message for Bucket Hibernation
Version 3.3.6 is the seventh release of the 3.3 series.
Version 3.3.6 is the seventh release of the 3.3 series.
Download | API Reference | Nuget
NCBC-3265 : Ensure SDK can bootstrap from a non-data-service node.
NCBC-3270 : Make Increment and Decrement take unsigned long delta, per the RFC.
NCBC-3258 : Changed QueryRequest from /query to /query/service.
NCBC-3263 : Support For Configuration Profiles added.
NCBC-2953 : Support for Serverless/Lambda Execution Environments.
NCBC-3261 : Where possible, we now use ArrayPool instead of MemoryPool .
NCBC-3264 : Improved performance of lambda processing for subdoc operations.
NCBC-3267 : When creating snapshot packages in Jenkins, the latest tag is now always used as a base for the snapshot name.
NCBC-3268 : Session State GA readiness.
Version 3.3.5 is the sixth release of the 3.3 series.
Version 3.3.5 is the sixth release of the 3.3 series.
Download | API Reference | Nuget
NCBC-3256 : Fixed issue where Search.MetaData.TimeTook was being parsed as ticks, not nanoseconds.
NCBC-3257 : Fixed a bug where operations failed on memcached bucket types.
Version 3.3.4 is the fifth release of the 3.3 series.
Version 3.3.4 is the fifth release of the 3.3 series.
Download | API Reference | Nuget
NCBC-3248 : Fixed issue where bootstrap did not continue after an AuthenticationFailureException .
NCBC-3252 : Fixed issue where the wrong error message was returned when bootstrapping a bucket.
NCBC-3193 : Removed erroneous InvalidArgumentException when TLS is enabled with defaults.
NCBC-3253 : This fixes an issue in Couchbase Server 6.5 FTS which fails when values of 0 are provided for "fuzziness" or "prefix_length".
Version 3.3.3 is the fourth release of the 3.3 series.
Version 3.3.3 is the fourth release of the 3.3 series.
Download | API Reference | Nuget
NCBC-3010 : BucketNotFoundException incorrectly raised when there is no database running.
NCBC-3191 : EventingFunctionManager throws wrong exception for compilation failure.
NCBC-3214 : Fixed NuGet packaging issues causing problems with dependencies for some users.
NCBC-3231 : MutateIn throws CAS error instead of KeyExists when doc exists and StoreSemantics.Insert .
NCBC-3239 : NullReferenceException when bootstrapping fails and a mangement API call is made.
NCBC-3240 : WaitUntilReadyAsync fails when it cannot connect to a cluster before timeout.
NCBC-3241 : QueryIndexManager throws generic exception as opposed to IndexNotFoundException .
NCBC-3166 : Added performance best practices in API Docs.
NCBC-3224 : Flagged ErrorContext as uncommitted.
NCBC-3242 : Updated Newtonsoft.JSON to version 13.0.1 or later.
NCBC-2953 : Added support for Serverless/Lambda Execution Environments
Version 3.3.2 is the third release of the 3.3 series.
Version 3.3.2 is the third release of the 3.3 series.
Download | API Reference | Nuget
NCBC-3067 : GetAndLockAsync times out instead of throwing DocumentLockedException.
NCBC-3195 : N1QL queries with the default serializer don't read DateTimeOffset correctly.
NCBC-3197 : FailFast Retry Strategy May Result in Infinite Processing Loop for Query, Views, Analytics, Search requests.
NCBC-3198 : Blocked Task when Helo is called on a nonresponsive socket.
NCBC-3199 : Timeout log message uses misleading Operation.Timeout.
NCBC-3200 : Unlock returns DocumentLockedException.
NCBC-3201 : Remove bootstrap endpoint comparison from network resolution.
NCBC-3203 : NotMyVbucket exception while in mixed mode (CB 6.5 & 7.X).
NCBC-3205 : A locked status is mapped to temporary failure.
NCBC-3206 : DI provider caches bad bootstrap results.
NCBC-3216 : LoggingMeterReport can crash the process in the timer.
NCBC-3217 : InternalSerializationContext throws a NotSupportedException when the object graph contains JObject.
NCBC-3218 : Redacted<T> doesn't close tags properly.
NCBC-3225 : QueryOptions.MaxServerParallelism should be serialized as a string.
NCBC-3226 : Opaque is written to packet in NBO making WireShark tracing difficult.
NCBC-3227 : Opaque is reused during retries making debugging difficult.
NCBC-3232 : Ensure collections are enabled for all connections.
NCBC-3236 : Issues with KV and NMVB against pre 6.5 cluster.
NCBC-1973 : .NET Doc on Error Handling for SDK 3 v1.
NCBC-3186 : Review .NET SDK Snippets in VSCode.
NCBC-3189 : Mark IEventingFunctionManager as Uncommitted.
NCBC-3202 : Dead Link in Repo.
NCBC-3223 : Flag RetryReason as Volatile.
NCBC-3002 : Validate: Document accessed after Locking should raise DocumentLockedException or Timeout?.
NCBC-3028 : Upgrade App.Metrics to mitigate security scan warnings.
NCBC-3038 : Add retry reasons to ErrorContext.
NCBC-3078 : Mark synchronous methods in data structures as obsolete.
NCBC-3168 : Add exception to debug log in CircuitBreaker.
NCBC-3188 : Add retry reasons to ErrorContext for UnAmbiguousTimeouts.
NCBC-3207 : Remove dependency on Crc32.NET in Transactions.
NCBC-3208 : Review all SDK and verify if new SQL++ Feature introduced in 7.1.1(Include MISSING) will work as expected without any change in the code.
NCBC-3228 : Make BestEffortRetryStrategy.RetryAfter virtual so it can be overridden.
NCBC-3229 : Add 30s lock limit for GetAndLock API docs.
NCBC-3152 : Improved code documention for KV API.
Version 3.3.1 is the second release of the 3.3 series.
Version 3.3.1 is the second release of the 3.3 series.
Download | API Reference | Nuget
NCBC-3192 : Fixed erroneous InvalidArgumentException with default TLS settings.
This version introduces an issue, NCBC-3192 , which impacts TLS/SSL. Please use version 3.3.1 instead.
This version introduces an issue, NCBC-3192 , which impacts TLS/SSL. Please use version 3.3.1 instead.
Version 3.3.0 is the first release of the 3.3 series (delisted from NuGet 4/28/2022).
Download | API Reference
During a rebalance upgrade from 6.x (or any earlier version) to 7x, in mixed mode (where you are communicating with Couchbase Server whilst some but not all nodes are upgraded), there is a known issue where data may be written to the wrong location. The solution is to either upgrade to 3.2.9 or greater, or to pause application processing so there are no writes until you have upgraded all nodes. If you encounter a similar situation during migration and need help with mitigation, please contact our support team.
NCBC-2847 , NCBC-3123 , NCBC-3115 , NCBC-3124 , NCBC-3151 , NCBC-3179 , NCBC-3000 : Made it simpler to diagnose failures by ensuring that various exceptions including AuthenticationFailureException , BucketNotFoundException , EventingFunctionNotFoundException , FTS exceptions, ScopeNotFoundException , BucketExistsException , AuthenticationFailedException are correctly thrown.
NCBC-3164 , NCBC-3177 : Fix bugs where NullReferenceException were thrown in SendAsync (because the OperationBuilder has not been set for a NOOP) and rebalancing (when the cluster map was missing an alternate address).
NCBC-3190 : Fixed bug where CreateDataverseAsync failed when passed an empty TimeSpan.
NCBC-3173 , NCBC-3182 : Bundle Capella CA cert with SDK, and use it by default. (Note: fix is .NET 5+ only)
NCBC-2870 : Added OpenTelemetry 1.2.0 AggregatingMeter Otel integration.
NCBC-3082 : Support parameterized N1QL queries using string interpolation in .NET 6
NCBC-3180 : Fixed GetAllIndexes response on default collection.
NCBC-3043 : Made ChannelConnectionPool the default. This was added in 3.1.2, and is now the default, replacing DataFlowConnectionPool . (To revert to the previous connection pool set ClusterOptions.Experiments.ChannelConnectionPools to false.)
NCBC-3079 : Improved logging performance in hot paths.
NCBC-3126 : Reduce heap allocations deserializing vBucket maps.
NCBC-3132 , NCBC-3134 , NCBC-3137 :
Switched to System.Text.Json for exception error contexts, OperationSpec.ToString , ClusterVersionProvider
NCBC-3138 : Support both Newtonsoft and System.Text.Json` for DiagnosticReport
Version 3.2.9 is the ninth release of the 3.2 series.
Version 3.2.9 is the ninth release of the 3.2 series.
Download | API Reference | Nuget
During a rebalance upgrade from 6.x (or any earlier version) to 7x, in mixed mode (where you are communicating with Couchbase Server whilst some but not all nodes are upgraded), there is a known issue where data may be written to the wrong location. The solution is to either upgrade to 3.2.9, or to pause application processing so there are no writes until you have upgraded all nodes. If you encounter a similar situation during migration and need help with mitigation, please contact our support team.
Between bug fixes and performance improvements, the ChannelConnectionPool will be made the default in a future release. Give it a try now with ClusterOptions.Experiments.ChannelConnectionPools = true;
NCBC-3174 : Out of Retries misclassified as Operation Timed Out
NCBC-3176 : ExponentialBackoff only ever increases globally
NCBC-2994 : Trace listener leaks spans when an exception is thrown
NCBC-3076 : NullReferenceException when tracing span has no parent
NCBC-3111 : PingReport output should not include last_activity_us
NCBC-3122 : Duplicate view exception types for DesignDocumentNotFound
NCBC-3127 : Search query ConsistentWith uses bucket name instead of index name for scan vector key
NCBC-3149 : Synchronize bucket creation to avoid Object Disposed Exceptions
NCBC-3160 : Wrong host was used for lookup
NCBC-3163 : Bucket name escaping in QueryIndexManager.GetAllIndexesAsync
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-3172 : .NET SDK fails to connect to correct node in custom port (cluster_run) multi-node setup
NCBC-3099 : Clean up uses of ToString() on primitives to be sure we use InvariantCulture.
NCBC-3125 : Use System.Text.Json for bucket management
NCBC-3133 : Use System.Text.Json to serialize OperationResult and OperationResult<T>.ToString()
NCBC-3150 : Improve error messages in views and FTS
NCBC-3168 : Add exception to debug log in CircuitBreaker
Version 3.2.8 is the eighth release of the 3.2 series.
Version 3.2.8 is the eighth release of the 3.2 series.
Download | API Reference | Nuget
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021.
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-3091 : NRE GetDocumentFromReplicaAsync when EndPoint is null v3.2.X
NCBC-3110 : PingReport does not honor token or default timeout
NCBC-3114 : Json Converters not used for some EventingFunctionSetting fields
NCBC-3119 : MutateIn does not use registered ITranscoder or ITypeSerializer
NCBC-3103 : Integrate Transactions into couchbase-net-client repo
NCBC-3105 : Build and package Couchbase.Transactions with CouchbaseNetClient
NCBC-2176 : 3.0 API Migration guide
NCBC-2711 : Build DocFx site in Jenkins during release pipeline.
NCBC-3112 : Update integration tests to work with System.Text.Json
NCBC-3012 : Review GitHub protocol security and replace git://
NCBC-3017 : Expose key/value metrics for instrumentation and observability
NCBC-3060 : Reduce heap allocations for ClusterNode.SendAsync
NCBC-3081 : Reuse CancellationTokenSources which have not timed out
NCBC-3113 : Update DataStructures to be compatible with System.Text.Json
NCBC-3120 : Use System.Text.Json to serialize QueryOptions
Version 3.2.7 is the seventh release of the 3.2 series.
Version 3.2.7 is the seventh release of the 3.2 series.
Download | API Reference | Nuget
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021.
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-3085 : Fixed potential issue with Random.Next returning only zero, by using RandomNumberGenerator.GetInt32 if available.
NCBC-3086 : Improved error handling in QueryIndexManager.
NCBC-3090 : Fixed TaskCancellationException in EventingFunctionManager.
NCBC-3092 : Resolve DNS for each connection rather than node bootstrap.
NCBC-3095 : Modified to shutdown the Bootstrapper loop on Dispose, avoiding an indefinite loop.
NCBC-3096 : Cleaned up CancellationTokenSource handling in ConfigHandler.
NCBC-3100 : Included LastDispatchedFrom and LastDispatchedTo in IErrorContext implementations.
NCBC-3102 : Fixed a bug where the RemoteHost tag was assigned the value of LocalHost when an Orphaned report is generated.
NCBC-3107 : Escape keyspace values with backticks only if missing, fixing an error where IQueryIndexManager didn’t accept some bucket names.
NCBC-3109 : Fixed issue with Quota Limited Exceptions not being thrown for some Management apis.
NCBC-2964 : Added QueryOptions.PreserveExpiry
NCBC-2973 : Enhanced Index Management API with ability to manage indexes for a collection or scope.
NCBC-3035 : Improved performance of EnumExtensions method calls.
NCBC-3036 : Added tracing spans for improved Observability of compression/decompression performance.
NCBC-3059 : Reduced heap allocations surrounding OperationCancellationRegistration.
NCBC-3063 : Replaced Stopwatch in AsyncState with a lightweight approach.
NCBC-3089 : Added clone method to QueryOptions to avoid reuse and potential threading issues.
NCBC-3097 : Reduced risk of odd behaviors during connection pool scale down with use of TaskCreationOptions.RunContinuationsAsynchronously .
Version 3.2.6 is the sixth release of the 3.2 series.
Version 3.2.6 is the sixth release of the 3.2 series.
Download | API Reference | Nuget
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021.
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-2647 : CreatePrimaryIndexAsync throws exceptions / ignores IgnoreIfExists .
NCBC-2829 : NoOp operations can fail with an ObjectDisposedException on MultiplexingConnection.
NCBC-2977 : When you cannot connect to a bucket you may recieve a Memcached bucket error.
NCBC-2980 : Threshold Logging report is missing server duration(s).
NCBC-2981 : Threshold Logging report is missing timeout.
NCBC-2999 : Subdocument Operation LookupInAsync must throw PathNotFoundException .
NCBC-3008 : RequestTooBigException should be ValueTooLargeException .
NCBC-3047 : Tracing is not stopped when the cluster is disposed.
NCBC-3050 : Exception iterating over a DataStructures dictionary.
NCBC-3057 : Incorrect and inefficient db.couchbase.service span tags.
NCBC-3061 : PersistentDictionary should use a replace operation when setting Item: key .
NCBC-3062 : Don’t set MaxIdleTime on ServicePoint in .NET Core 3.1.
NCBC-3072 : CollectionManager.GetAllScopesAsync throws on success.
NCBC-3073 : PersistentDictionary. TryGetValue does not properly map path not found error.
NCBC-3029 : Create basic implementation of SystemTextJsonSerializer .
NCBC-3066 : Develop Key/Value API tests.
NCBC-3069 : Add project with basic tests.
NCBC-3001 : log message formatting opCode and endpoint parameters are swapped.
NCBC-3037 : Add additional unit testing to Rate Limiting code.
NCBC-3056 : Ignore null reference exception in global config resolution is server version is earlier than 6.5.
NCBC-2692 : Management APIs should provide detailed responses to errors (ban EnsureStatusCode ).
NCBC-2937 : Support for .NET 6.0.
NCBC-2946 : Bucket Management API — Add Custom Conflict Resolution to the enumeration for Conflict Resolution Type.
NCBC-2947 : ARM — Support for Apple Silicon.
NCBC-2950 : Extend FTS options to set IncludeLocations and Operator.
NCBC-2956 : Support for AWS AWS Graviton2.
NCBC-2971 : Bucket Management API — Add Storage Option.
NCBC-3003 : InternalServerFailureException.
NCBC-3033 : Remove finalizer from OperationBase.
NCBC-3046 : Reduce tracing related heap allocations.
NCBC-3049 : Sporadic logging failures in unit tests.
NCBC-3053 : Add lambda to options in Cluster.ConnectAsync overload.
NCBC-3064 : Construct Activity objects using parent ActivityContext .
NCBC-3070 : Add API documentation to source files in Sub-Doc API.
NCBC-3080 : Use C# LangVersion 10.
Version 3.2.5 is the fifth release of the 3.2 series.
Version 3.2.5 is the fifth release of the 3.2 series.
Download | API Reference | Nuget
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021.
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-2851 : Fixed TimeoutExceptions after rebound in Failover/Eject tests.
NCBC-2983 : Allowed query timeouts to exceed 100ms.
NCBC-2991 : Fixed compatibility with DI NET 6.0 - added support for named bucket/collection DI.
NCBC-2993 : Rewrote CancellationTokenPair to dispose the linked CancellationTokenSource during GC, avoiding memory leaks.
NCBC-2995 : Fixed slow memory leak in OrphanReporter.
NCBC-3005 : Fixed GetCidByName failure with "Not connected to any bucket", by ensuring the operation is routed to KV node.
NCBC-3007 : Improved logging around connection pool scale down, for deeper inspection of DataFlowConnectionPool behavior.
NCBC-3009 : Addressed sync-over-async deadlocks.
NCBC-3013 : Keep connections alive after send is canceled. This fixes issue where canceling K/V operations while waiting on network send killed the connection.
NCBC-3018 : Fix background worker edge case where error "Comparing the same configs is not allowed" was hit.
NCBC-3021 : Fixed regression with legacy Memcached buckets.
NCBC-3045 : Fixed Fix WaitUntilReadyAsync for FTS.
NCBC-3041 ; NCBC-2996 ; NCBC-3031 : Work on updating .NET targets. Removed unneeded .netstandard2.0 target from DI project. Made code changes to prepare for .NET 6. Added .NET 5 Target.
NCBC-2948 : Added special error handling for rate and quota limits.
NCBC-2600 : Set default query HTTP Idle timeout to 4.5s, to avoid premature IOException when connecting with default values.
NCBC-3004 : Added log warning when socket disconnects from cluster
NCBC-3019 : Enabled SSL cipher configuration.
NCBC-3020 : Added support for custom deserializers for GET projections.
NCBC-3022 : Improved lock contention getting collection CIDs.
NCBC-3023 : Enabled nullable annotations to serializer/transcoder.
NCBC-3025 : Cleaned up project files and NuGet dependencies.
NCBC-3034 : Reduced blocking in async methods in data structures, resulting in more efficient thread utilization.
NCBC-3044 : Fixes to problematic OpenTelemetry tracing registration. A consumer may now register with an OpenTelemetry provider which is being managed outside the SDK.
Version 3.2.4 is the fourth release of the 3.2 series.
Version 3.2.4 is the fourth release of the 3.2 series.
Download | API Reference | Nuget
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-2851 : TimeoutExceptions continue after rebound in Failover/Eject tests.
NCBC-2974 : When GetCid failed, an infinite loop could be triggered, causing the CidLock to time out. The regression that caused this in the previous release has now been fixed.
NCBC-2989 : Fixed side effects related to singleton CouchbaseHttpClient . Now each consuming service can safely manipulate the `HttpClient’s timeout and connection ID headers and such without affecting other services.
NCBC-2979 : Added support for Error Map v2.
NCBC-2987 : Updated NuGet package info.
NCBC-2477 : Replaced HttpClientHandler with SocketsHttpHandler .
NCBC-2859 : Completed Field Level Encryption implementation, adding RSA support for legacy upgrade scenarios.
NCBC-2865 : Added new revEpoch field, allowing server to provide higher level guidance for current, correct bucket configuration.
NCBC-2992 : Renamed BucketBase.BucketConfig to BucketBase.CurrentConfig for clarity. Renamed BucketConfigExtensions.IsNewer() to BucketConfigExtensions.IsNewerThan() .
Version 3.2.3 is the third release of the 3.2 series.
Version 3.2.3 is the third release of the 3.2 series.
Download | API Reference | Nuget
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
NCBC-2851 : TimeoutExceptions continue after rebound in Failover/Eject tests.
NCBC-2965 : Don’t capture ExecutionContext for long-running tasks/timers, as this could cause memory leaks.
NCBC-2966 : Allow ILoggerFactory from the DI container to be overridden.
NCBC-2967 : Rewrite OrphanReporter to avoid blocking calls.
NCBC-2968 : Use correct service type name in query context.
NCBC-2969 : Fix auto-repair of the ChannelConnectionPool after a node outage.
NCBC-2949 : Improve client side error message when TLS is enforced on the server side
NCBC-2961 : Optimize performance of the internal EscapeIfRequired routine.
NCBC-2963 : Support Dependency Injection of Named Scopes/Collections.
NCBC-2970 : Optimize performance of queuing operation completion by more than 50% by using UnsafeQueueUserWorkItem .
NCBC-2962 : Add Lambda overloads for Query and Analytics at the Scope level.
Download | API Reference | Nuget
Download | API Reference | Nuget
This is a re-release of 3.2.1 with exactly the same commits due to a packaging bug in 3.2.1. The only difference is the version and package fix.
NCBC-3171 : Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Your coding agent can read these notes before it upgrades. Set up the MCP server →