Couchbase .NET SDK Release Notes and Archives

    Release notes, installation instructions, and download archive for the Couchbase .NET Client.

    The Couchbase .NET SDK is compatible with .NET Standard 2.0 and .NET Standard 2.1, which means that it is compatible with .NET Framework 4.6.2+, .NET 5.0, .NET 6.0, and .NET Core 3.1. The .NET Standard documentation and .NET Standard version chart may be useful to help understand other available options.

    We strongly recommend using the latest version of .NET that is officially supported by Microsoft. Other .NET implementations might work but are not tested and are outside of the scope for technical support.

    These pages cover the 3.x versions of the Couchbase .NET SDK. For release notes, download links, and installation methods for 2.7 and earlier releases of the Couchbase .NET Client, please see the 2.x .NET Release Notes & Download Archive.


    Quick Installation Using NuGet

    For every release, we currently package the binaries and store the latest version in NuGet. If you are not familiar with NuGet, it’s the official and most widely supported package manager for Microsoft Visual Studio and .NET in general.

    NuGet from Visual Studio

    Using Visual Studio 2013 or later, follow these steps to get started with the Couchbase .NET SDK:

    1. From the IDE, right-click the project you want to add the dependency to.

    2. In the context menu, click Manage NuGet Packages. The NuGet package manager modal dialog opens.

    3. From the Tree View menu on the left, select Online >

    4. In the search box at the top right-hand side of the dialog, type CouchbaseNetClient and then press enter on your keyboard.

    5. In the search results, select the CouchbaseNetClient package and then click Install.

    NuGet from the Package Manager Console

    From the Package Manager Console within your project:

    1. From the Visual Studio menu bar, click Tools.

    2. Select NuGet Package Manager > Package Manager Console.

    3. In the console, enter the package installation command:

      • To install the latest version:

     Install-Package CouchbaseNetClient
    • To install a specific version, include the version parameter. For example:

     Install-Package CouchbaseNetClient -Version 3.1.3

    Downloading and referencing the binaries

    If you do not want to use NuGet to include the Couchbase .NET SDK in your project, you can download and reference the binaries directly. If you chose this route, you’ll also be responsible for including and resolving dependencies used internally by the SDK.

    To download and reference the binaries directly:

    1. Download the version of the SDK you want to install.

    2. In Visual Studio, right-click the project you want to include the SDK in and then click Add.

    3. Click Reference to open the Reference Manager.

    4. On the left side, click Browse and select the binaries you downloaded.

    5. Click OK.

    After you have referenced the Couchbase .NET SDK binaries, you need to locate and reference the dependencies it uses in a similar fashion. At the time of this writing, the dependencies are:

    Other versions might not be compatible with the current SDK version.

    Building from source

    If none of the other installation options suffice or if you want to debug the source or perhaps contribute, building directly from the source is the best option for you. All source is located on GitHub.

    The software provided via NuGet and S3 are the official releases that have been through a rigorous testing process. Code on GitHub that is not tagged as an official release is still in development.

    To build the .NET SDK from source:

    1. (Optional) Fork the GitHub repository:

    2. Using a Git console, enter the command to clone the repository:

    git clone
    1. Enter the command to retrieve the latest code from GitHub:

    git pull origin master
    1. Navigate to the directory that the source was cloned to and open the solution.

    2. Build the solution.

    After you have successfully built the source, it’s then just a matter of referencing the binaries (.DLL files) from your consuming project. Note that you can checkout a specific tag for each release as well.

    Version 3.2.4 (2 November 2021)

    Version 3.2.4 is the fourth release of the 3.2 series.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.

    Fixed Issues

    • 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.

    New Features and Behavioral Changes.

    • 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 (6 October 2021)

    Version 3.2.3 is the third release of the 3.2 series.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.

    Fixed Issues

    • 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.

    New Features and Behavioral Changes.

    • 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.

    Version 3.2.2 (15 September 2021)

    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.

    Version 3.2.1 (9 September 2021) DO NOT USE - USE 3.2.2 INSTEAD

    Version 3.2.1 is the second release of the 3.2 series.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.

    New Features and Behavioral Changes.

    • NCBC-2697: The Eventing Service can now be managed from the SDK. Users can create, delete, publish, pause, and select Eventing Functions.

    • NCBC-2959: By default SDK3 sends the IP as the target host during TLS/SSL authentication — unlike SDK2 which sends either the hostname or IP address, depending on the returned server configuration. A new flag, ForceIpAsTargetHost, has been introduced to allow SDK3 to mimic SDK2 behavior.

    Version 3.2.0 (26 July 2021)

    Version 3.2.0 is the first release of the 3.2 series, featuring collections and scopes

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.

    Fixed Issues

    • NCBC-2660: After a failure that causes the circuit breaker to open, such as full send queue, new operation will immediately fail with CircuitBreakerException. The retry orchestrator now retries in this situation, preventing silent failure.

    • NCBC-2730: Expose Partition Information in Query Management API.

    • NCBC-2841: Construct query_context in Analytics queries correctly, fixing a bug with datasets that required escaping with backticks.

    • NCBC-2853: After a not_my_vbucket exception during a rebalance, use a Fast-forward map, if available, to locate the correct vbucket.

    • NCBC-2880: Analytics fix and refactor to improve testability.

    • NCBC-2890: Enable and collect server duration for tracing.

    • NCBC-2891: Fixes a bug where the CID for the default Scope/Collection was not passed to some 7.0beta server versions.

    • NCBC-2894: Remove unsupported CAS setting from Increment/DecrementOptions

    • NCBC-2929, NCBC-2899: Correct Logging Meter emit_interval to output every 600 seconds.

    • NCBC-2903: Remove reference to AggregatingMeter, which has been superseded by LoggingMeter.

    • NCBC-2900, NCBC-2902, NCBC-2904: Align LoggingMeter Output Format with RFC, adding percentile values and setting JSON output to terse by default, instead of pretty.

    • NCBC-2905, NCBC-2906, NCBC-2907, NCBC-2908: Align ThresholdLoggingTracer Output with RFC, and enable by default. Now correctly omits null fields in JSON output, includes timeout.

    • NCBC-2916: Add "operation" property to allow LoggingMeterReport output to be split by opcode.

    • NCBC-2928: Align Threshold Logger output with KV Tracer Output spec.

    • NCBC-2921: Fix a bug where the quota.rawRAM size may over/under flow the Int32 size of the BucketSettings.RamQuotaMB field when the JSON is parsed.

    • NCBC-2924: Fix a bug where Date Time Offsets were always coverted to local time zone, by passing DateParseHandling from SerializerSettings to the DefaultStreamingJsonReader.

    • NCBC-2927: Requests and responses will be handled in an Out-of-Order manner by default.

    • NCBC-2930: Update Collection and Scope error parsing

    • NCBC-2931: Fixes a bug where when the Collection id changes, those changes were not picked up causing an operation timeout.

    • NCBC-2933, NCBC-2934: Unit Test improvements and fixes to Jenkins Pipeline.

    New Features and Behavioral Changes.

    • NCBC-2869: Provide OpenTelemetry tracing module, allowing export via any of the OpenTelemetry exporters such as ZipKin, Jaeger, etc.

    • NCBC-2893: Allow a parent span to added to the options for each service or operation for tracing.

    • NCBC-2856, NCBC-2923: Add Orphaned Response Logging to SDK.

    • NCBC-2911: Travel Sample App added, with examples of Collections and Scopes across Query, KV, and Search.

    • NCBC-2926: Add license to footer of all files in Couchbase project

    • NCBC-2574, NCBC-2575: Analytics management: manage Remote Links, support compound dataverse names.

    • NCBC-2581, NCBC-2800: Provide tracing for the .NET SDK based upon RFC 67 Extended SDK Observability. Implements Threshold Logger, LoggingMeter for latency metrics.

    • NCBC-2585, NCBC-2717: Add build Support for .NET 5.0 and Ubuntu 20.04 LTS

    • NCBC-2892, NCBC-2886, NCBC-2889: Update and correct links for 3.2.0 release.

    • NCBC-2699, NCBC-2777: Provide a framework for client-side encryption of sensitive fields in JSON documents using Field Level Encryption.

    • NCBC-2790: Replace, Upsert and MutateIn support PersistTtl in servers >= 7.0 which keeps subsequent calls from modifying the original TTL value on update.

    • NCBC-2807: Deprecate Collection Manager GetScope() in favour of GetAllScopes()

    • NCBC-2846: Distinguish between CAS mismatch and DML failure on query error.

    • NCBC-2912, NCBC-2917: Ensure that a server response 13014 is also recognized as an authentication failure by the query parser.

    • NCBC-2932: Add Cause field on Query.Error for Transactions Query support.

    Version 3.1.7 (02 June 2021)

    Version 3.1.7 is the eighth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.

    • NCBC-2891: Send 0x0 for default scope/collections for certain Server 7.0 beta versions.

    Fixed Issues

    • NCBC-2879: Combi test failure fixed by only running tests with CollectionTests.CollectionIdChanged_RetriesAuto on servers which support collections and the newer management URI structure.

    • NCBC-2888: Converting null literal or possible null value to non-nullable type — a rare compile time error for certain environments fixed by using var instead of TValue.

    New Features and Behavioral Changes.

    • NCBC-2698: Added FTS Support for Collections.

    • NCBC-2881: Use Hello to determine if collections are available now no longer leaves exception in DEBUG level log.

    • NCBC-2887: Previously the CID value of 0 could be appended to the key if the default scope/collection was being used. Now, this is checked for, and we don’t send the CID with the key in this case, as it is not required by the server.

    Version 3.1.6 (24 May 2021)

    Version 3.1.6 is the seveneth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.

    Fixed Issues

    • NCBC-2881: The SDK now uses Hello to determine if collections are available, giving improved accuracy over the heuristic method.

    • NCBC-2877: Collection GIT_CID Eaccess error fix.

    Version 3.1.5 (13 May 2021)

    Version 3.1.5 is the sixth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests

    Fixed Issues

    • NCBC-2551: GetAllBucketsAsync always throws ArgumentNullException

    • NCBC-2860: Configuration revisions should be parsed and compared with 64-bit precision.

    • NCBC-2864: Unknown default collection regression

    • NCBC-2867: ConfigHandler dead locks in K8 when delete pod is used

    • NCBC-2871: NRE in BucketManager and UserManager part 2

    • NCBC-2876: Upserting to <7.0 clusters does not upsert the content

    New Features and Behavioral Changes.

    • NCBC-2862: Log message on timeout appears to lack instance

    • NCBC-2866: Exception: Non-default Scopes and Collections not supported on this server version.

    • NCBC-2839: SDK API changes due to protocol level changes to get_collection_id

    • NCBC-2858: Move collection id fetch into the operation call on the collection

    Version 3.1.4 (8 April 2021)

    Version 3.1.4 is the fifth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests

    Fixed Issues

    • NCBC-2720: Change QueryMetrics Property from ElaspedTime to ElapsedTime

    • NCBC-2831: MutateIn is not throwing and classifying sub-doc errors correctly.

    New Features and Behavioral Changes.

    • NCBC-2828: Cleanup sub-doc operation public API surface

    • NCBC-2842: Add Couchbase.Core.Exceptions.TimeoutException

    • NCBC-2843: K/V CancellationToken expiration does not include IErrorContext

    • NCBC-2844: Make Query.ReadOnly obsolete and replace w/QueryOptions.Readonly

    • NCBC-2845: Allow default IRetryStrategy to be overridden

    Version 3.1.3 (3 March 2021)

    Version 3.1.3 is the fourth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • NCBC-2801: NodeAdapter incorrectly shows N1QL service is not available.

    • NCBC-2817: LookupInAsync and MutateInAsync builder extensions should accept null options.

    • NCBC-2823: Make ClusterOptions.NetworkResolution read/write.

    • NCBC-2826: Collection Id outdated exception on K-V ops.

    • NCBC-2827: GET_CID and GET_SID do not correctly retry if Scope/Collection not found.

    • NCBC-2811: Cache default scope/collection allocation.

    • NCBC-2812: Throw UnsupportedException if non-default scopes/cols are used in pre-7.0 clusters.

    New Features and Behavioral Changes

    • NCBC-2813: Cleanup IOperation and OperationBase code.

    • NCBC-2815: Replace AsyncMutex with SemaphoreSlim.

    • NCBC-2818: Queue operation completions on the global queue.

    • NCBC-2819: Enable NetworkResolution via the connection string.

    • NCBC-2833: Remove Type parameter from UnlockAsync.

    Version 3.1.2 (4 February 2021)

    Version 3.1.2 is the third release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • NCBC-2763: MutationToken throwing ArgumentNullException on static initialization.

    • NCBC-2766: CreateScopeAsync not creating collections in ScopeSpec.

    • NCBC-2767: ScopeNotFoundException when trying to get Scope after creating it.

    • NCBC-2784: Getting a collection right after creating it throws CollectionNotFoundException.

    • NCBC-2794: PackageIconUrl is still being used and blocks package creation.

    • NCBC-2797: Hot upgrade failure from 6.6.0 to 6.6.1 using SDK v3.1.2.

    • NCBC-2798: ThrowIfBootstrapFailed called twice in GetAsync.

    • NCBC-2804: Non-JSON transcoders cannot be mixed with requests for document expiry.

    • NCBC-2810: On pre-7.0 clusters default scopes/collections may not load.

    New Features and Behavioral Changes

    • NCBC-2791: GetResult uses AddMilliseconds instead of AddSeconds for expiry.

    • NCBC-2796: SUBDOC_MULTI_PATH_FAILURE_DELETED throwing PathInvalid.

    • NCBC-2770: Add experimental connection pool based on System.Threading.Channels.

    • NCBC-2772: Cleanup key/value cancellation token and timeout handling.

    • NCBC-2776: Change SlicedMemoryOwner to a structure.

    • NCBC-2789: Unable to override the remote name mismatch error with custom validation.

    • NCBC-2793: Address misc compiler warnings.

    • NCBC-2802: Port sub-doc lambda extensions from SDK 2.x.

    • NCBC-2805: Optimize in-flight operation cleanup method.

    • NCBC-2808: Use ValueTask and IValueTaskSource for OperationBase.Completed.

    • NCBC-2809: Use ValueTask for new ScopeAsync/CollectionAsync methods.

    Version 3.1.1 (13 January 2021)

    Version 3.1.1 is the second release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • NCBC-2565: WaitUntilReady failure for 6.5.

    • NCBC-2660, NCBC-2935: Operations are now retried if they hit an open circuit breaker.

    • NCBC-2693: MutationToken.GetHashCode() implementation looks suspect.

    • NCBC-2694: Removed unnecessary linked CancellationToken.

    • NCBC-2726: Cannot read empty response bodies.

    • NCBC-2741: If the send queue is full when requeuing after connection cleanup, the operation is dropped.

    • NCBC-2746: using mutate in to update an existing value to null causes an IllegalArgumentException.

    • NCBC-2751: Use ConfigureAwait(false) on awaited task in DnsClientDnsResolver.

    • NCBC-2756: Do not allow empty hosts in ConnectionString.

    • NCBC-2760: MultiMutation duplicates specs on Retry, causing SUBDOC_INVALID_COMBO.

    • NCBC-2761: MutateIn is not setting Cas, ignoring MutateInOptions.CasValue, resulting in a default of 0 which always overwrites.

    • NCBC-2762: Threshold trace logging leaks memory.

    • NCBC-2764: Expiration of TimeSpan.Zero is being sent to server as 1 second expiration.

    • NCBC-2778: Throw CasMismatchException when CAS mismatch occurs.

    • NCBC-2780: Fix unit tests relying on obsolete Expiry method.

    • NCBC-2781: Make replica commands use CancellationToken.

    • NCBC-2782: Replica methods randomly completed with NotMyVBucket.

    New Features and Behavioral Changes.

    • NCBC-2716: Collections Analytics Test Changes.

    • NCBC-2747: Add KvSendQueueCapacity to ClusterOptions for tuning.

    • NCBC-2748: netcore3.0 target id deprecated and cannot be used with dotnet pack.

    • NCBC-2785: ArgumentOutOfRangeException if GetResult.Expiry called on GET operation.

    • NCBC-2788: UserManagerTests.Test_UserInheritsCollectionAwareRoles fails in combi tests.

    • NCBC-2653: Unnecessary allocation in classes implementing IOperation.

    • NCBC-2661: CouchbaseBucket is doing ad hoc retrying if CollectionOutdatedException.

    • NCBC-2677: Docs: Threshold Logging and Orphan Response Logging.

    • NCBC-2722: Improve performance of WriteKey using stackalloc.

    • NCBC-2723: Reduce async/await around circuit breakers on K/V ops.

    • NCBC-2724: Reduce task continuations related to K/V timeouts.

    • NCBC-2725: Improve logic around ITypeTranscoder instantiations.

    • NCBC-2727: Improve log redaction performance.

    • NCBC-2728: Improve LEB128 encoding performance.

    • NCBC-2729: Reduce task continuations on k/v GET operations.

    • NCBC-2731: Reduce JSON serialization heap allocations.

    • NCBC-2732: ConfigHandler processing is blocking a thread from the thread pool.

    • NCBC-2733: Improve efficiency of ErrorCode lookup in ErrorMap.

    • NCBC-2734: Improve CancellationTokenSource handling in RetryOrchestrator.

    • NCBC-2735: Optimize OperationBuilder performance.

    • NCBC-2736: Optimize key/value operation flag handling.

    • NCBC-2737: Use a static client description for spans.

    • NCBC-2738: Improve performance building connection tags for K/V operation spans.

    • NCBC-2740: Optimize performance when request tracing is disabled.

    • NCBC-2742: Reduce debug logging heap allocations on critical K/V path.

    • NCBC-2743: Reduce Task ContingentProperties heap allocations.

    • NCBC-2744: Enable reporting of test results in Jenkins.

    • NCBC-2745: Reduce lambda-related heap allocations for K/V operation completions.

    • NCBC-2749: Use Stopwatch to track connection idle time.

    • NCBC-2750: Use spans in MultiplexingConnection.ParseReceivedData.

    • NCBC-2752: Improve ToTtl performance.

    • NCBC-2753: Allow BucketBase.RetryAsync to be inlined.

    • NCBC-2754: Use Span<byte> for VBucketKeyMapper.GetIndex

    • NCBC-2755: Use ThrowHelper to improve inlining.

    • NCBC-2757: SkipLocalsInit when writing document keys to operations.

    • NCBC-2758: Use .NET provided encoding of strings to spans when available.

    • NCBC-2765: Improve buffer handling in MultiplexingConnection receive.

    • NCBC-2768: Improve precision of UnixMillisecondsConverter.

    • NCBC-2769: Avoid heap allocations for default K/V operations.

    • NCBC-2773: Simplify AsyncState handling of Opaque.

    • NCBC-2774: Make OperationBuilderPool tunable.

    • NCBC-2775: Improve array handling performance throughout the SDK.

    Version 3.1.0 (2 December 2020)

    This is the first GA release of the 3.1 series, bringing enhancements and bugfixes over the 3.0 releases, and adding features to support Couchbase Server 6.6.

    Fixed Issues

    • NCBC-2643: DataFlowConnectionPool was creating unbounded connections in certain situations, such as pinging for a buckets which had not yet been created. This fix resolves the issue, although the number of connections will go up still but then trend back down, as they are in a TIME_WAIT state and it takes a little time for them to be reclaimed.

    • NCBC-2660: Operations were not retried if they hit an open circuit breaker (CircuitBreakerException); the retry orchestrator will now retry these failures.

    • NCBC-2686: Facet result missing fields added to Search.

    • NCBC-2705: RawBinaryTranscoder was using invalid DataFormat. It will now simply pass the body of the packet back to the consumer as it should.

    • NCBC-2706: A JSON string stored in Couchbase was generating an error when read as a string via result.ContentAs<string>(). The packet is now converted into a UTF8 string if the type of T is a string in JsonTranscoder, so if you write a POCO to Couchbase reading it as a string now works as expected.

    • NCBC-2708: Sub-Document API Transcoder InvalidOperationExceptions are no longer thrown when a DataFormat mismatch occurs.

    New Features and Behavioral Changes.

    • NCBC-2386: Non-JSON & transcoders code samples added to developer documentation.

    • NCBC-2418: maxTTL can now be set via the CollectionSpec.MaxExpiry property.

    • NCBC-2572: Durability can now be set on the bucket, for Couchbase Server 6.6 and up.

    • NCBC-2589: Document Expiry Duration works as expected with offsets and with absolute time stamps.

    • NCBC-2622: GetResult.expiry() is deprecated. Please use GetResult.ExpiryTime over Expiry as it accurately depicts the TTL of the document.

    • NCBC-2627, NCBC-2631: FTS Score parameter added to allow avoidance of scoring from Server 6.6.

    • NCBC-2679: A better opcode is used for basic Get scenarios, which will allow the server to return compressed documents once compression support is added to the .NET SDK.

    • NCBC-2709: A minor optimization in all key-value operations following improved performance of bootstrap test.

    • NCBC-2715: Added InterfaceStabilityAttribute for API interface stability.

    Version 3.0.7 (3 November 2020)

    Version 3.0.7 is the eighth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • NCBC-2641: ConfigHandler has already been started.

    • NCBC-2651: IncrementOptions and DecrementOptions are missing Expiry.

    • NCBC-2655: Bucket WaitUntilReadyAsync running into NullReferenceException.

    • NCBC-2656: Serialization/Transcoding Errors Are Unhandled.

    • NCBC-2660: Operations are not retried if they hit an open circuit breaker.

    • NCBC-2669: Upsert/Insert null with MutateIn fails with Invalid arguments (0x0004).

    • NCBC-2685: AccessDeleted not supported properly on MutateIn.

    New Features and Behavioral Changes.

    • NCBC-2670: Collections - RBAC Collections - .net tests

    • NCBC-2569: .NET Logging page

    • NCBC-2580: Add Ephemeral Bucket Management Support

    • NCBC-2664: Operations are silently ignored if the send queue is full

    • NCBC-2668: Add RawBinaryTranscoder

    • NCBC-2675: Optimize VBucketKeyMapper.GetIndex

    • NCBC-2680: Share ServerFeatures on IConnection

    • NCBC-2688: Make synchronous Analytics query methods obsolete

    Version 3.0.6 (13 October 2020)

    Version 3.0.6 is the seventh release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • NCBC-2187: CollectionManager - 400: Not allowed on this version of cluster (verify).

    • NCBC-2604: exception.IsRetryable() in docs.

    • NCBC-2619: Update KV samples.

    • NCBC-2638: Intermittent InvalidOperationException in Dependency Injection.

    • NCBC-2639: Upsert-and-remove doesn’t work.

    • NCBC-2652: Operations gets stuck in retry loop until timeout.

    • NCBC-2657: Exceptions Aren’t Thrown For N1QL Errors After Results.

    • NCBC-2659: Fix strong naming for Couchbase.Extensions.DependencyInjection.

    • NCBC-2662: Correct DI security for named buckets on .NET Core.

    • NCBC-2671: KV Throughput drop after failover-rebalance

    New Features and Behavioral Changes.

    • NCBC-2033: 3.0 API Query snippets in concept doc.

    • NCBC-2321: Update documents to SDK 3.0 Beta interface.

    • NCBC-2472: Ensure connection string supports options table defined in RFC.

    • NCBC-2298: CancellationToken and CancellationTokenSource management needed.

    • NCBC-2557: Improve cancellation and timeouts.

    • NCBC-2573: Add support for CreateAsDeleted.

    • NCBC-2576: Geopolygon search support.

    • NCBC-2577: Add Options To Use FTS Hints (Flex Index).

    Version 3.0.5 (1 September 2020)

    Version 3.0.5 is the sixth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • NCBC-2504: Intermittent ViewQuery failures after rebound Rb2OutEpt-HYBRID

    • NCBC-2559: Test_BootStrap_Error_Propagates_To_View_Operations fails w/BucketNotFoundException

    • NCBC-2561: CreateAndDropIndex and Test_QueryManager conflict

    • NCBC-2625: Ensure new NodeAdapter is assigned to ClusterNode on change

    • NCBC-2634: Expiry returned with entire document when ContentAs invoked

    • NCBC-2405: SDK3 DOC on User Auth options

    • NCBC-2541: WaitUntilReady() doc code sample

    • NCBC-2603: Missing snippets & sections in Managing Connections doc

    • NCBC-2623: Implement Threshold Logging features of RTO

    • NCBC-2636: Test max limitations of collections and scopes

    • NCBC-2637: Split Couchbase.IntegrationTests into seperate projects for Management and main API

    • NCBC-2427: Verify that out-of-order K/V request/responses are supported

    • NCBC-2584: Add N1QL Support for Collections

    • NCBC-2630: Enhance User Management for Collections/RBAC

    Version 3.0.4 (5 August 2020)

    Version 3.0.4 is the fifth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    Fixed Issues

    • NCBC-2605: Expiration less than 1000ms creates a doc with an infinite lifespan

    • NCBC-2608: Connection fails if first node in connection string array is unavailable.

    • NCBC-2620: Expiry not being set by MutateIn

    • NCBC-2621: Ensure the CName field is set per operation

    • NCBC-2601: SUBDOC_XATTR_INVALID_FLAG_COMBO when mixing MutationMacro and XAttr

    New Features and Behavioral Changes.

    • NCBC-2441: Implement tracing using OpenTelemetry for FTS

    • NCBC-2442: Implement tracing using OpenTelemetry for KV

    • NCBC-2443: Implement tracing using OpenTelemetry for Analytics

    • NCBC-2444: Implement tracing using OpenTelemetry for Views

    • NCBC-2579: Implement tracing of spans for all services towards Response Time Observability for SDK 3.0

    • NCBC-2583: Add support for looking up certificates via Cert Store

    • NCBC-2602: Add Support for MutateIn.SetDocument

    • NCBC-2609: Add PublicKey to AssemblyInfo for DI when building release packages

    • NCBC-2617: When signing make friend assemblies use public key

    Version 3.0.3 (14 July 2020)

    Version 3.0.3 is the fourth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    Fixed Issues

    • NCBC-2588: LookupIn should re-order subdoc requests so that XATTRs come first.

    • NCBC-2450: KV failure after removing entry point node for pre-MH server

    • NCBC-2501: latency detected in FoEptRb-SubDoc after rebound never recovers

    • NCBC-2502: latency detected in FoEptEject-SUBDOC after rebound never recovers

    • NCBC-2503: Latency detected for FoRbAnalytics-CBAS after rebound never recovers

    • NCBC-2545: Hello World example in the docs repo doesn't build.

    • NCBC-2553: Remove authzid from Sasl Negotiation

    • NCBC-2563: StreamingQueryResult fails to populate errors on InternalServerError

    • NCBC-2587: LookupInSpecBuilder allows only a single XATTR per request.

    • NCBC-2592: Fix custom circuit breaker not being injected

    • NCBC-1836: CAS samples

    New Features and Behavioral Changes.

    • NCBC-2542: OpenTelemetry tracing extension

    • NCBC-2593: Update install and start docs to reflect .NET Standard/Core support

    • NCBC-2594: Update version number on release notes

    • NCBC-2595: Indent code on error handling page so that it is readable.

    • NCBC-2227: Author Managing Connections documentation

    • NCBC-2170: Implement tracing using OpenTelemetry for Query

    • NCBC-2519: Review docs for update items, identify/file issues

    • NCBC-2598: Misc SDK improvements for Transactions

    • NCBC-2591: Allow registration of custom services

    Version 3.0.2 (20 June 2020)

    Version 3.0.2 is the third release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    Fixed Issues

    • NCBC-2436: User connstr example in migration guide

    • NCBC-2459: Remove QueryOptions from StartUsing.cs in docs

    • NCBC-2487: NRE when bootstrapping - BucketConfigExtensions.ReplacePlaceholderWithBootstrapHost

    • NCBC-2506: Connection attempt failed / timeout exception with Cloud and .NET SDK 3.0.1

    • NCBC-2508: Alternate Addresses are not handled correctly in sdk3

    • NCBC-2512: Additional debug logging and improvements

    • NCBC-2525: Connection pool does not scale up to minimum connections after a temporary network failure.

    • NCBC-2526: requests wait forever while cluster is unreachable

    • NCBC-2537: Orphaned nodes when bootstrapping with a Memcached and a Couchbase bucket

    • NCBC-2538: Analytics failures after failover/rebalance of the ept node

    • NCBC-2540: Enumerating query results from SELECT RAW queries throws an exception

    • NCBC-2546: Retry all exceptions with the IRetriable marker interface

    • NCBC-2548: Ensure all operations attempt retrys when NMVB status is returned by server

    • NCBC-2549: Subdoc failures after restarting CB server

    • NCBC-2552: Intermittent cluster connection failures with CB Server <6.5

    • NCBC-2555: Memcached and SSL results in "The handshake failed due to an unexpected packet format."

    • NCBC-2556: Capture thrown exception and log the error when bootstrapping

    • NCBC-2558: Couchbase.Extensions.DependencyInjection Failing On .NET Core 3.1

    New Features and Behavioral Changes.

    • NCBC-2202: Integration tests need to configure tests to run based on server version

    • NCBC-2237: PLAIN must not be enabled by default on non-tls connections

    • NCBC-2404: ConnectAsync throws ArgumentNullException when cluster cannot be reached

    • NCBC-2530: Provide navigation properties to get from ICouchbaseCollection back to ICluster

    • NCBC-2533: Provide access to ITypeSerializer on ICluster for Linq2Couchbase

    • NCBC-2544: Add additional DEBUG logging info and ContextIds

    • NCBC-2463: Document documentation .NET

    • NCBC-2469: Make nightly Jenkins builds work

    • NCBC-2495: Update NuGet API Key in deployment pipeline on Jenkins

    • NCBC-2509: CreateAndConnectAsync ONLY creates CouchbaseBuckets (not MemCache or Ephemeral)

    • NCBC-2517: DependencyInjection project refactoring

    • NCBC-2523: Port ClusterVersion from sdk2 to sdk3

    • NCBC-2527: Update DnsClient to 1.3.2

    • NCBC-2529: CB Cloud: non-KV nodes fail when used for bootstraping

    • NCBC-2534: .NET Collections Functional Testing

    • NCBC-2539: Port UnixMillisecondsConverter from sdk2 to sdk3

    • NCBC-2482: Couchbase.IntegrationTests.Services.Search.SearchIndexManagerTests.TestSearchManager

    • NCBC-2483: Couchbase.IntegrationTests.UserManagerTests.Test_UserManager

    • NCBC-2484: Couchbase.IntegrationTests.BucketManagerTests.Test_BucketManager

    • NCBC-2485: Couchbase.IntegrationTests.Diagnostics.PingReportTests.Can_Get_PingReport_With_ReportId

    • NCBC-2486: Couchbase.IntegrationTests.CollectionManagerTests.Test_CollectionManager

    • NCBC-2489: Couchbase.IntegrationTests.ClusterTests.Test_Open_More_Than_One_Bucket

    • NCBC-2490: Couchbase.ServiceNotAvailableException : Service views not available.

    • NCBC-2518: HttpStreamingConfigListener should continue running after all streams break.

    • NCBC-2524: Couchbase.IntegrationTests.ClusterTests.Test_WaitUntilReadyAsync

    • NCBC-2531: Implement OpenTelemetry Stub in CouchbaseNetClient

    • NCBC-2532: Remove existing OpenTracing dependency

    Version 3.0.1 (13 May 2020)

    Version 3.0.1 is the second release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    Fixed Issues

    • NCBC-2033: 3.0 API Query snippets in concept doc

    • NCBC-2204: Improve exception when bootstrapping fails

    • NCBC-2301: 3.0 Logging / Collecting Info page

    • NCBC-2303: Client Settings page for SDK 3.0

    • NCBC-2388: Ensure that prepared statements that are previously created are not retried

    • NCBC-2435: Connstr not taking username properly

    • NCBC-2439: improve formatting on exception context

    • NCBC-2451: QueryPreparedStatementFailure in situational tests with MH

    • NCBC-2454: EndPoint may be null during SendAsync

    • NCBC-2456: Transient NodeNotAvailableException rebalance under kv load

    • NCBC-2458: QueryAsync(String statement) does not exist

    • NCBC-2460: .NET Core App 3.x targets require consumers add reference to Microsoft.Bcl.AsyncInterfaces

    • NCBC-2462: ConnectAsync is failing "Cannot resolve DNS for localhost"

    • NCBC-2466: Ensure TaskCancelationExceptions are rethrown

    • NCBC-2467: CLONE - Ensure TaskCancelationExceptions are rethrown

    • NCBC-2468: System.ArgumentException: ReadResult does not contain valid MutationToken

    • NCBC-2473: Incorrect Verbiage for NuGet Package

    • NCBC-2475: GetNodes() sometimes returns no results, incorrectly.

    • NCBC-2479: Point config.json for combination tests back at localhost

    • NCBC-2480: SocketException: Cannot bind to address in SslConnectionTests

    • NCBC-2481: KV operations don’t respect IgnoreCertificateNameMismatch

    • NCBC-2488: Couchbase.IntegrationTests.BootstrapFailedTests.Test_BootStrap_Error_Propagates_To_View_Operations [FAIL]

    • NCBC-2493: Improve error logging and handling for Query

    • NCBC-2497: SetKeepAlive fails on Windows

    New Features and Behavioral Changes.

    • NCBC-2304: Managing Connections - SDK3

    • NCBC-2464: Build/deploy the .NET Dependency Injection extension for SDK 3.0

    • NCBC-2478: Cluster.ConnectAsync throws PlatformNotSupportedException

    • NCBC-2492: Log warning when TCPKeepAlive cannot be enabled

    • NCBC-2494: Fix TCPKeepAlive to work on non Windows Platform

    Version 3.0.0 (31 March 2020)

    This is the first GA release of the third generation .NET SDK.

    This is the first GA release of the third generation .NET SDK.

    This release features significant changes to the API, simplifies the programming model, adds support for newer Durability Requirements and enables simple extension for features coming in future Couchbase Server releases. See the Migration Guide for help with migrating from .NET SDK 2.x.

    Known Issues

    • NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.

    Fixed Issues

    • NCBC-2149: ConfigConext throws NullReferenceException when processing new cluster maps

    • NCBC-2153: Fix failing integration tests for SDK3

    • NCBC-2166: Authentication Errors after adding nodes to cluster

    • NCBC-2168: QueryException does not provide textual details coming from the server

    • NCBC-2199: Missing string interpolation sign in CouchbaseBucket

    • NCBC-2213: N1QL situational test failure - Rb1SwapQuery

    • NCBC-2214: N1QL situational test failure - SvcRestartQuery

    • NCBC-2217: Deserialization issues with GetAsync<T>

    • NCBC-2219: Cluster instantiation using ClusterOptions ignores WithServers servers

    • NCBC-2222: AuthenticationFailure thrown when accessing bucket while combination testing

    • NCBC-2230: QueryException missing XxxxContext

    • NCBC-2241: Defer bootstrapping errors on buckets to first operation

    • NCBC-2266: UserManager#AvailableRolesAsync must be called getRoles

    • NCBC-2268: CollectionManager does not align with RFC

    • NCBC-2273: Incorrect ScopeMissingException

    • NCBC-2274: Can’t connect to two buckets from one cluster object

    • NCBC-2277: SearchOptions does not map query parameters

    • NCBC-2282: fix test and implementation of positional params

    • NCBC-2286: Make all options have no "With" prefix

    • NCBC-2288: MutateIn ContentAs() functionality missing

    • NCBC-2290: Add Timeout to all options classes in BucketManager

    • NCBC-2306: Match RFC requirement for Rows property for query services

    • NCBC-2307: Cannot query using any type other than dynamic

    • NCBC-2308: N1QL query situational failure

    • NCBC-2309: Hybrid/view query errors with situational testing

    • NCBC-2316: Ensure view request get default timeout if not supplied

    • NCBC-2324: Random KeyNotFoundException in LogManagerTests.Test_LogLevel_Debug

    • NCBC-2350: SearchOptions.Raw is unused, and throws an NRE

    • NCBC-2351: View timeout is not applied to view query string

    • NCBC-2352: Cleanup Service Exceptions Hiding Context

    • NCBC-2353: Cleanup .NET SDK 3 Build Warnings

    • NCBC-2354: Most Integration Tests Failing

    • NCBC-2365: Ensure Exists checks if deleted is true then exists returns false

    • NCBC-2366: AnalyticsManager does not exist

    • NCBC-2367: Methods in ClusterNode have unused "connections" parameter

    • NCBC-2369: Ping diagnostics are not accurately reporting ping times

    • NCBC-2372: NRE thrown while initializing cluster

    • NCBC-2384: SSL connections cannot find node for K/V operations

    • NCBC-2389: ClusterNode must be associated with a bucket once a bucket has been opened

    • NCBC-2397: OPS pulses between zero and the expected performance

    • NCBC-2402: Add ConfigureAwait(false) to all asynchronous code

    • NCBC-2407: Couchbase.ServiceNotAvailableException: Service n1ql not available

    • NCBC-2416: ViewQuery failure/hanging

    • NCBC-2421: Remove default to NotBounded in FTS

    • NCBC-2422: Error replacing dead connections on N1QL Failover rebalance

    • NCBC-2426: Service Restart failure - replacing dead connections failure

    • NCBC-2429: Should be MaxHttpConnections instead of MaxHttpConnection

    • NCBC-2446: Ensure bootstrapping continues after BucketNotConnected on pre-6.5 servers

    • NCBC-2448: unpublish concurrent document mutations

    • NCBC-2183: Exists must use "getMeta" (0xa0) instead of Observe

    • NCBC-2410: LookupInResult has NotImplementedException for some methods

    • NCBC-2412: Cluster.AnaytlicsIndexes throws NotImplementedException

    • NCBC-2414: Connection terminated when packet exceeds NetworkStream buffer size

    • NCBC-2415: error CS0649: Field 'SubDocSingularBase<T>.CurrentSpec' is null

    • NCBC-2430: HttpMaxConnections renaming breaks DI unit tests

    • NCBC-2431: Failed DNS resolution throws NullReferenceException

    • NCBC-2433: Fix failing tests involving MaxHttpConnection

    • NCBC-2305: RequestId, ClientContextId, and Signature Lost After N1QL Query Enumeration

    • NCBC-2358: Timeout is not written to the packet when using Durability

    New Features and Behavioral Changes.

    • NCBC-2315: Improve logging for each service request

    • NCBC-2325: Add SCRAM-SHA Sasl Authentication

    • NCBC-1863: Add Flushing or Deleting a Collection logic

    • NCBC-1870: Support Log Redaction

    • NCBC-1915: Add new consistency API to SDK 3.0

    • NCBC-2151: Migrating from SDK 2 to 3.0

    • NCBC-2169: Migrating from SDK 2 to 3.0

    • NCBC-2209: Add Converters/Transcoders per RFC

    • NCBC-2220: Ensure ClusterOptions properties are integrated into SDK

    • NCBC-2234: Mark all ErrorContexts as Uncomitted

    • NCBC-2302: Getting Started Tidy Up

    • NCBC-2413: Add XxxErrorContext information to K/V

    • NCBC-2417: Remove all Singular Sub-Document classes

    • NCBC-1799: Analytics client needs to support streaming results

    • NCBC-1989: Add connection pooling

    • NCBC-2244: WaitUntilReady not available at the cluster and bucket levels

    • NCBC-2245: Cluster-level ping missing

    • NCBC-2260: Tighten OperationSpec for lookupIn and mutateIn

    • NCBC-2293: Remove deprecated ErrorAttribute enum

    • NCBC-2297: Decrease API surface surrounding K/V operations/connections

    • NCBC-2299: Implement non-streaming fallback for N1QL queries

    • NCBC-2300: Support custom stream deserializers for view queries

    • NCBC-2310: Make IQueryResult implementations internal

    • NCBC-2312: Make IServiceResult.RetryReason read only

    • NCBC-2313: Align StreamAlreadyReadException with other Couchbase exceptions

    • NCBC-2314: Implement non-streaming fallback for view queries

    • NCBC-2318: Refactor view queries to be strongly typed

    • NCBC-2319: Implement non-streaming fallback for analytics queries

    • NCBC-2320: Cleanup K/V classes in root namespace

    • NCBC-2322: Enable symbol packages and SourceLink for debugging

    • NCBC-2323: Enable C# 8 nullable ref types for buckets/scopes/collections

    • NCBC-2327: Create Lightweight DI system for Couchbase SDK

    • NCBC-2328: Update Cluster and Bucket to use DI for Logging

    • NCBC-2329: Update RetryOrchestrator to use DI for logging

    • NCBC-2330: Make transaction/serializer/mapper configurable via DI

    • NCBC-2331: Use DI for Scope and Collection logging

    • NCBC-2332: Remove default constructor added to BucketBase (CS8618 warning)

    • NCBC-2334: All integration tests fail, cannot bootstrap

    • NCBC-2336: Use DI for CouchbaseHttpClient

    • NCBC-2337: Remove ClusterContext requirement from service clients

    • NCBC-2338: Use DI for service clients and their loggers

    • NCBC-2340: Use DI for logging in configuration handlers

    • NCBC-2341: Use DI for OrphanedResponseLogger logging

    • NCBC-2343: Use DI for logging in data structures

    • NCBC-2344: Use DI for logging in managers

    • NCBC-2345: Use DI for logging in DNS resolver

    • NCBC-2346: Use DI for logging in GetResult

    • NCBC-2347: Use DI for logging in QueryUriTesters

    • NCBC-2348: Use DI for VBucket and ErrorMap logging

    • NCBC-2349: Enable Nullable Ref Types in ClusterOptions

    • NCBC-2355: Support deserialization of ClusterOptions from configuration

    • NCBC-2356: Move content services directory to root in Couchbase.UnitTests

    • NCBC-2357: Enable nullable ref types for XxxOptions classes

    • NCBC-2359: Use DNS resolver for IP address resolution

    • NCBC-2360: Use DNS resolver in Ketama key mapper and ClusterContext

    • NCBC-2362: Make ConfigChanged handling async

    • NCBC-2363: Use DNS resolver for VBucketServerMap.IPEndPoints

    • NCBC-2364: Enable null reference types for K/V specs/results

    • NCBC-2368: Remove Servers From ClusterOptions

    • NCBC-2370: Support custom port numbers in ConnectionString

    • NCBC-2371: Make BucketConfig and other config serialization classes internal

    • NCBC-2373: Implement abstraction layer for connection pool implementations

    • NCBC-2374: Replace TKey with string parameter in persistent collections

    • NCBC-2376: Cleanup BootstrapUri on ClusterNode

    • NCBC-2377: Implement auto scaling on connection pools

    • NCBC-2378: Add log redaction to DataFlowConnectionPool

    • NCBC-2379: Respect couchbases scheme for DNS SRV lookup

    • NCBC-2380: ClusterOptions MgmtPort and EnableTls cleanup

    • NCBC-2381: Cleanup IConnection interface

    • NCBC-2382: Support multiplexing on SslConnection

    • NCBC-2383: NodeAdapter is null on non-bootstrap nodes

    • NCBC-2387: Reduce heap allocations related to K/V operation response handling

    • NCBC-2391: Include XML documentation in NuGet package

    • NCBC-2392: Reduce heap allocations around MultiplexingConnection async state

    • NCBC-2393: Align QueryScanConsistency with the RFC

    • NCBC-2398: Change ICollection interface to ICouchbaseCollection interface

    • NCBC-2399: Add bootstrap service

    • NCBC-2408: Add BucketContext or equivalent for cohesion and less coupling

    • NCBC-2409: Route nodes into service specific CouchbaseNodeCollections

    • NCBC-2425: Reduce heap allocations calling BucketAsync


    Numerous Alpha and Beta releases were made in the run-up to the 3.0 release, and although unsupported, the release notes and download links are retained for archive purposes here.

    Older Releases

    Although no longer supported, documentation for older releases continues to be available in our docs archive.