SDK Release Notes
Release notes, installation instructions, and download archive for the Couchbase Go Client.
These pages cover the 2.x versions of the Couchbase Go SDK (3.x SDK API). For release notes, download links, and installation methods for 1.6 and earlier releases of the Couchbase Go Client, please see the 1.x Go Release Notes & Download Archive.
SDK Installation
$ go get github.com/couchbase/gocb/v2@v2.11.1
| In line with the Golang project, we support both the current, and the previous, versions of Go. Older versions may work, but are not supported. |
API Documentation
The most current and up to date API Documentation is always available through the godoc website.
Go SDK 2.11 Releases
We always recommend using the latest version of the SDK — it contains all of the latest security patches and support for new and upcoming features. All patch releases for each dot minor release should be API compatible, and safe to upgrade; any changes to expected behavior are noted in the release notes that follow.
Version 2.11.1 (18 September 2025)
Version 2.11.1 is a maintenance release for the Go SDK 2.11.
Fixed Issues
-
GOCBC-1764: Non-TLS connections are not possible with the
couchbase2://scheme. TLS is now always enabled when thecouchbase2://scheme is used, and the system certificate pool is used by default if no certificate options are specified. -
GOCBC-1762: Improved logging for
WaitUntilReadywhen no bootstrap error is found before a config is seen, to make it clearer that there was no error. -
GOCBC-1765: Improved error message when the
couchbase2://scheme is used in a connection string with a bucket.
Version 2.11.0 (26 August 2025)
Version 2.11.0 is the first release in the Go SDK 2.11 series.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1633, GOCBC-1739: Added support for binary objects in transactions.
-
GOCBC-1692: Added missing fields to orphan reporter output.
-
GOCBC-1693: Updated app telemetry to contain latency for orphaned responses.
-
GOCBC-1703: Updated replica reads in transactions.
-
GOCBC-1716: Added support for FTS like pre-filters while doing vector search.
-
GOCBC-1759: Updated FTS
BooleanQueryto accept a variadic parameter to allow a list of queries to be specified.
Fixed Issues
-
GOCBC-1669: Fixed issue where management operations had the incorrect metrics/span value for the
db.couchbase.serviceattribute. -
GOCBC-1723: Fixed issue where the incorrect error was returned for not locked in
couchbase2mode. -
GOCBC-1730: Fixed issue where
alt_nodewas always reported for KV app telemetry. -
GOCBC-1742: Fixed issue where
ErrDocumentExistswas wrapped in aTransactionOperationFailedErrorwhen it should not have been. -
GOCBC-1746: Fixed issue where SRV record refresh would not correctly reset internal SDK state.
API breaking fixed Issues
-
GOCBC-1758: Fixed issue where FTS
TermRangeQuerywas requiring (and sending in the payload) atermattribute. This led to the query always being executed as aTermQuery, and aTermRangeQuerynever being executed.
Go SDK 2.10 Releases
Version 2.10.1 (21 July 2025)
Version 2.10.1 is a maintenance release for the Go SDK 2.10.
Fixed Issues
-
GOCBC-1724: Fixed issue where
AppendandPrependcould panic incouchbase2mode if a retry occured. -
GOCBC-1735: Fixed issue where Eventing function
QueryConsistencywas sent as the incorrect type on the wire. -
GOCBC-1737: Fixed issue where reading search results could panic in
couchbase2mode. -
GOCBC-1743: Fixed issue where
GetMultiread skew resolution could nil pointer. -
GOCBC-1745: Fixed issue where SRV record refresh would never match existing addresses being used.
-
GOCBC-1747: Fixed issue where SRV record refresh would fail when cluster config pushes were active.
Version 2.10.0 (17 April 2025)
Version 2.10.0 is the first release in the Go SDK 2.10 series.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1278: Added transactions support for
ExtReplaceBodyWithXattr. -
GOCBC-1311: Added transactions support for
ExtThreadSafety. -
GOCBC-1430: Updated path to
/whoamirather than/for pinging the management service. -
GOCBC-1676: Added support for application telemetry.
-
GOCBC-1687: Replaced usages of deprecated http transport dial functions.
-
GOCBC-1688: Replaced usages of deprecated
ioutilfunctions. -
GOCBC-1701: Added transactions support for
ExtGetMulti. -
GOCBC-1704: Added transactions support for specifying
NumVBucketsinBucketSettings. -
GOCBC-1706: Added support to the core for Columnar via a new Columnar Agent.
-
GOCBC-1707: Updated minimum compatible Go version to 1.21.
-
GOCBC-1713: Updated bucket management operations to convert HTTP status code 400 into
ErrInvalidArgument.
Fixed Issues
-
GOCBC-1648: Fixed issue where
highlight.fieldswould be sent in a search request payload even when the option wasn’t specified. -
GOCBC-1712: Fixed issue where
AppendandPrependwould returnErrDocExistsrather thanErrCasMismatch. -
GOCBC-1715: Fixed issue where
LoggingMeterloggedemit_interval_sas nanoseconds rather than seconds.
Go SDK 2.9 Releases
Version 2.9.4 (21 February 2025)
Version 2.9.4 is a maintenance release for the Go SDK 2.9.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
Fixed Issues
-
GOCBC-1696: Fixed an issue where scope-level SQL++ queries would fail if the scope or bucket names contained a period character (
.).
Version 2.9.3 (26 November 2024)
Version 2.9.3 is a maintenance release for the Go SDK 2.9.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1656: Added support for zone-aware replica reads to transactions, at API stability level uncommitted.
-
GOCBC-1658: Added more contextual labels to metrics.
-
GOCBC-1674: Added support for
max_perhost_http_connectionsconnection string parameter. -
GOCBC-1677: vbucket id is now included in trace level dispatch logs, to aid debugging issues where
NotMyVbucketis received. -
GOCBC-1680: Improved retry handling for http operations.
Version 2.9.2 (25 September 2024)
Version 2.9.2 is a maintenance release for the Go SDK 2.9.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1632: Added support for zone-aware replica reads, at API stability level uncommitted.
-
GOCBC-1657: Updated tracing when using the
couchbase2scheme, to send traces to the server over gRPC.
Fixed Issues
-
GOCBC-1655: Fixed the error messages for some connection string parameter parsing errors, where the message was not referring to the correct parameter.
-
GOCBC-1660: Fixed a possible data race that occurred because the value of a lock was being logged at debug-level.
Version 2.9.1 (18 July 2024)
Version 2.9.1 is a maintenance release for the Go SDK 2.9.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1640: Adjusted logging levels when logging about receiving cluster configs older than the SDK already has.
Fixed Issues
-
GOCBC-1625: Fixed issue where a data race could occur when requests were retried concurrently with being cancelled.
-
GOCBC-1643: Fixed issue where couchbase2 mode did not wait for operations to complete on close.
Version 2.9.0 (18 June 2024)
Version 2.9.0 is the first release in the Go SDK 2.9 series.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1626: Addressed an issue where performing operations after calling cluster.Close (or calling close twice) would lead to a panic. On close the SDK will now cancel all in flight operations and block waiting for them to complete/be cancelled. All operations will now fast fail if called after close.
-
GOCBC-1631: Added handling to treat memcached scope not found errors the same as collection not found errors.
-
GOCBC-1634: Added support for base64 encoded vector queries.
-
GOCBC-1642: Moved vector search API support level to committed.
Fixed Issues
-
GOCBC-1625: Fixed issue where SDK could not receive large (> 4MB) documents in
couchbase2mode. -
GOCBC-1636: Fixed issue where a race accessing config watchers could occur on agent close.
Go SDK 2.8 Releases
Version 2.8.1 (18 April 2024)
Version 2.8.1 is a maintenance release for the Go SDK 2.8.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1520: Added
MaxConcurrencytoScanOptionsat API stability level uncommitted. -
GOCBC-1578: Made port optional in connection string for
couchbase2mode, now defaults to 18908. -
GOCBC-1615: Updated SCRAM client to relax some validation checks, in line with SCRAM RFC 7677.
-
GOCBC-1623: Added support for
Scopelevel eventing functions at API stability level uncommitted.
Fixed Issues
-
GOCBC-1617: Fixed issue where service not available errors were not always retried in
couchbase2mode. -
GOCBC-1617: Fixed issue where the degraded cluster target state for
WaitUntilReadywould check all services by default, rather than only those available on the cluster.
Version 2.8.0 (12 March 2024)
Version 2.8.0 is the first release in the Go SDK 2.8 series.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1577: Added support for vector search.
-
GOCBC-1578: Updated connection parsing to default to port 18098 if not specified when
couchbase2scheme is used. -
GOCBC-1608: Return
ErrFeatureNotAvailableif requested search capabilities aren’t available. -
GOCBC-1614: Updated SDK API volatility levels:
-
Moved Collection range scan to committed,
-
Moved Query read from replica to committed,
-
Moved LookupIn read from replica to committed,
-
Move Bucket History Retention Settings to committed,
-
Moved UserManager Change Password to committed,
-
Moved Scope level Search and SearchIndexes to committed,
-
Moved Vector Search to uncommitted.
-
Fixed Issues
-
GOCBC-1582: Fixed issue where
math.MaxUint32was causing an error when used withfmt.Errorf.
Breaking Fixes
-
GOCBC-1482: Fixed issue where there was inconsistency in whether Couchbase error types were returned as pointers across services, now all Couchbase errors are returned as pointers. Improved the string output for
TimeoutError. We expect this to have a minimal impact but may impact some users who are usingerrors.Asor directly type asserting errors. -
GOCBC-1575: Improved the interface for
BucketSettingHistoryRetentionCollectionDefaultfield to use a constant value rather than a bool pointer.
Go SDK 2.7 Releases
Version 2.7.2 (20 February 2024)
Version 2.7.2 is a maintenance release for the Go SDK 2.7.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1470: Added a V2 Collection management API, accessed via
Bucket.CollectionsV2(), which has improved method signatures forCreateCollection,UpdateCollection, andDropCollection. -
GOCBC-1580: Exposed constants for the
unitsetting ofSearchSortGeoDistance. -
GOCBC-1584: Added support for compressing data between the SDK and server in
couchbase2mode. -
GOCBC-1585: Exposed non-idempotent requests that fail because of the socket closing while they are in-flight to the retry orchestrator (
SocketCloseInFlightRetryReasonretry reason). -
GOCBC-1590: Added support for
FlushBucketincouchbase2mode. -
GOCBC-1591: Added support for
Scope.Search()andScope.SearchIndexes()for querying and managing scoped search indexes.
Fixed Issues
-
GOCBC-1367: Fixed issue where
ExpiryTimeinGetResulthad the epoch value instead of zero time (time.Time{}) when the document has no expiry. -
GOCBC-1599: Fixed issue where the
DropIndexsearch management operation was not converting server errors to any of the known error values (e.g.ErrIndexNotFound) where applicable.
Version 2.7.1 (17 January 2024)
Version 2.7.1 is a maintenance release for the Go SDK 2.7.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1494: Improvements to Query error handling. Added handling for some additional Query error codes.
-
GOCBC-1549: Added the ability to specify both positional and named parameters in queries.
-
GOCBC-1558: Added the
ErrDocumentNotLockederror which is returned when KV responds with aNOT_LOCKEDstatus. -
GOCBC-1561: The SDK now displays the error description from the KV error map when an unknown KV status is received.
-
GOCBC-1579: Added support for
MaxExpiryvalue of -1 ('No Expiry') in collection management operations. -
GOCBC-1560: Added support in the
couchbase2mode for history retention settings in the bucket management API. -
GOCBC-1562: Added support for
UpdateCollectionin thecouchbase2mode.
Fixed Issues
-
GOCBC-1573: Fixed issue where the SDK’s prepared query cache was not differentiating between queries which have the same statement but are in a different query context.
-
GOCBC-1581: Fixed issue where the partition counts in
SearchMetricswere not populated. -
GOCBC-1588: Fixed issue with the
couchbase2mode where Conjunction, Disjunction, and Boolean search queries always failed with an 'invalid query' error.
Version 2.7.0 (21 November 2023)
Version 2.7.0 is the first release in the Go SDK 2.7 series.
Tracing and metrics with the couchbase2 scheme should be considered stability level volatile at this time.
New Features and Behavioral Changes
-
GOCBC-1322: Added RangeScan support as API stability volatile.
-
GOCBC-1391: Deprecated the use of
CollectionNameandScopeNamefor query index options blocks, usecollection.QueryIndexes()instead. -
GOCBC-1394: Updated requests against HTTP APIs to always encode URIs.
-
GOCBC-1397: Added support for the
couchbase2://protocol. -
GOCBC-1414: The SDK no longer works with Go versions below 1.19, due to versions enforced by dependencies.
-
GOCBC-1434: Added
LookupInAnyReplicaandLookupInAllReplicassupport as API stability volatile. -
GOCBC-1436: Added
UseReplicatoQueryOptionsas API stability uncommitted. -
GOCBC-1439: Added support for Config Push Negotiation and faster failover.
-
GOCBC-1454: Added support for JSON marshalling/unmarshalling of search indexes.
-
GOCBC-1457: Reduced the default timeout for idle HTTP connections 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
-
GOCBC-1459: Added support for history retention settings to bucket and collections managers, at API stability uncommitted.
-
GOCBC-1461: Updated
ExistsSpecresponse to handleContentAtbetter:-
Assign true if the path does exists
-
Assign false if the path does not exist
-
Return an error for all other statuses
-
-
GOCBC-1540: Added support for
ErrDocumentTooDeepwhich is only used incouchbase2mode, equivalent toErrPathTooDeep.
Fixed Issues
-
GOCBC-1471: Fixed issue where calling
.Bucketimmediately after.Connectcould lead to the config poller failing to stop. -
GOCBC-1479: Fixed issue where a cluster config fetched as a part of bootstrap would be applied even if select bucket failed.
-
GOCBC-1460: Fixed issue where a path mismatch status code was not converted to
ErrPathMismatch.
Breaking Fixes
-
GOCBC-1530: Fixed issue where
AppendandPrependcould directly return agocbcore.ErrNotStorederror, this is now translated to agocb.ErrDocumentNotFounderror. -
GOCBC-1545: Fixed issue where
Projectionsas a part of aGetoperation would return any path level errors, these are now silently ignored.
Go SDK 2.6 Releases
Version 2.6.5 (18 October 2023)
Version 2.6.5 is a maintenance release for the Go SDK 2.6.
New Features and Behavioral Changes
-
GOCBC-1489: Exposed
ErrCircuitBreakOpenas API stability uncommitted.
Fixed Issues
-
GOCBC-1485: Fixed issue where operations queue for collection id refresh would not be dequeued on refresh.
-
GOCBC-1493: Fixed issue where key value operation transcoding errors would be swallowed by the SDK.
Version 2.6.4 (26 September 2023)
Version 2.6.4 is a maintenance release for the Go SDK 2.6.
New Features and Behavioral Changes
-
GOCBC-1479: Cluster configs fetched during bootstrap are now only applied if select bucket succeeds.
Version 2.6.3 (18 April 2023)
Version 2.6.3 is a maintenance release for the Go SDK 2.6.
New Features and Behavioral Changes
-
GOCBC-1403: Updated CCCP polling to start running on startup rather than waiting for memcached connections to fetch a cluster config.
Fixed Issues
-
GOCBC-1400: Fixed issue where connection string parsing was missing some timeout values.
-
GOCBC-1402: Fixed issue where wan-development config profile was missing some timeout values.
Version 2.6.2 (23 March 2023)
Version 2.6.2 is a maintenance release for the Go SDK 2.6.
New Features and Behavioral Changes
-
GOCBC-1392: Added support for
NumReplicasto create (primary) index options. -
GOCBC-1393: Updated behaviour for when queries are retried when enhanced prepared statements are used (i.e. prepared statements against server version >= 6.5.0). When an error is translated to a
QueryPreparedStatementFailureRetryReasonit will invalidate the prepared statement cache entry and attempt to reprepare the statement. -
GOCBC-1395: Improved timeout error handling for http based services - if we know that an operation has already timed out then we will now immediately return a timeout error. Retry reason context is now carried throughout the lifetime of an entire prepared statement request.
Version 2.6.1 (22 February 2023)
Version 2.6.1 is a maintenance release for the Go SDK 2.6.
New Features and Behavioral Changes
-
GOCBC-1322: Added volatile support for kv range scan.
-
-
Added uncommitted support for
CollectionQueryIndexManager. -
Added support for sending
query_contextwhenScopeis set onTransactionQueryyOptions. -
Added support for handling query error code 1197 as feature not available.
-
Fixed Issues
-
GOCBC-1376: Fixed issue where lost cleanup would log an incorrectly formatted log line, leading to spamming the log.
-
GOCBC-1387: Fixed issue where an edge case could trigger a race between releasing connection buffers and reading on the connection — leading to a panic.
Version 2.6.0 (20 October 2022)
Version 2.6.0 is the first release in the Go SDK 2.6 series.
New Features and Behavioral Changes
-
GOCBC-1159: Added support for refreshing the DNS SRV record when cluster becomes uncontactable, if applicable.
-
GOCBC-1284, GOCBC-1328, GOCBC-1331: Significant refactoring work to kv bootstrap, including pipelining fetching a config from the cluster.
-
GOCBC-1316: Added support for transactions
ExtInsertExisting- allowingErrDocumentExiststo be be ignored in transactional inserts. -
GOCBC-1341: Added volatile level API support for
ConfigProfile. -
GOCBC-1352: Added support for trusting the system cert store when TLS is enabled with no
CertPoolregistered andSkipVerifynot set. -
GOCBC-1356: Updated the behaviour when
MutateInorInsertreturnsNOT_STOREDfrom the server to return aErrDocumentExists.
Fixed Issues
-
GOCBC-1347: Fixed issue where a nil agent value could cause logging
TransactionATRLocationto log a panic. -
GOCBC-1348: Fixed issue where a race on creating a client record could lead to a panic.
Go SDK 2.5 Releases
Version 2.5.4 (27 October 2022)
Version 2.5.4 is a maintenance release for the Go SDK 2.5.
Fixed Issues
-
GOCBC-1347: Fixed issue where a nil agent value could cause logging
TransactionATRLocationto log a panic. -
GOCBC-1348: Fixed issue where a race on creating a client record could lead to a panic.
Version 2.5.3 (21 September 2022)
Version 2.5.3 is a maintenance release for the Go SDK 2.5.
Fixed Issues
-
GOCBC-1338: Fixed issue where
lazyCircuitBreakerwas not using 64-bit aligned values.
Known Issues
-
GOCBC-1347: Known issue where a nil agent value could cause logging
TransactionATRLocationto log a panic. -
GOCBC-1348: Known issue where a race on creating a client record can lead to a panic.
Version 2.5.2 (20 July 2022)
Version 2.5.2 is a maintenance release for the Go SDK 2.5.
New Features and Behavioral Changes
-
GOCBC-1246: Added uncomitted stability support for
TransactionLoggertoTransactionResult. -
GOCBC-1314: Improved logging in the lost transactions process.
-
GOCBC-1318: Changed
WaitUntilReadyto always wait for any explicitly defined services to be online.
Fixed Issues
-
GOCBC-1320: Fixed issue where vbucket hashing function wasn’t masking out the 16th bit of the key.
Version 2.5.1 (22 June 2022)
Version 2.5.1 is a maintenance release for the Go SDK 2.5.
New Features and Behavioral Changes
-
GOCBC-1159: Improved support for serverless environments.
-
GOCBC-1250: Added support for single query transactions via
QueryOptionsAsTransaction. -
GOCBC-1298: Masked the underlying error reason for
TransactionOperationFailedError. -
GOCBC-1213: Added uncommitted API level support for
UserManagerChangePassword.
Fixed Issues
-
GOCBC-1300: Fixed issue where transactions lost cleanup would not remove deleted collections from the cleanup list.
-
GOCBC-1304: Fixed issue where transactions lost cleanup could temporarily block further responses being processed for a connection.
Version 2.5.0 (28 April 2022)
Version 2.5.0 is the first release in the Go SDK 2.5 series.
New Features and Behavioral Changes
-
GOCBC-1125: Deprecated
Cason Binary Append and Prepend as the server does not support this. Usage ofCason these operations will now return an error. -
GOCBC-1203: Added
CompressionOptionstoClusterOptions, defaulting to compression being enabled. -
GOCBC-1255: Deprecated
AggregatingMeterOptionsandNewAggregatingMeter. -
GOCBC-1265: Bundle Capella CA certificate with the SDK.
-
TXNG-1253: Removed
ServerDurationDisabledfromThresholdLoggingOptions.
Fixed Issues
-
GOCBC-1267: Fixed issue where
GetAllIndexescould incorrectly omit the default collection.
Go SDK 2.4 Releases
Version 2.4.1 (16 March 2022)
Version 2.4.1 is a maintenance release for the Go SDK 2.4.0.
New Features and Behavioral Changes
-
GOCBC-1221: Added support for handling any
retry:truefield in a query error result by retrying it. -
GOCBC-1228: Updated the query used within
BuildDeferredIndexesinQueryIndexManager. -
GOCBC-1244: Updated SDK dependencies.
-
GOCBC-1254: Added
NewLoggingMeterandLoggingMeterOptionsfor creating theLoggingMeter.AggregatingMeterOptionsandNewAggregatingMeterwill be deprecated in the next dot minor release.
Fixed Issues
-
GOCBC-1248: Fixed issue where a hard close of a memdclient during a graceful close could trigger a panic.
-
GOCBC-1251: Fixed issue where
SearchOptionsConsistentWithwas using an incorrect key within the JSON payload. -
GOCBC-1256: Fixed issue where config polling could fallback to using the http poller, when no http addresses are registered for use.
-
GOCBC-1258: Fixed issue where log redaction tags were not closed correctly.
Version 2.4.0 (16 February 2022)
Version 2.4.0 is the first release in the Go SDK 2.4 series, adding multi-document distributed ACID transactions.
New Features and Behavioral Changes
-
GOCBC-1172: Added uncommitted API stability support for Query option
PreserveExpiry. -
GOCBC-1176: Added uncommitted API stability support for collections to query index manager.
-
GOCBC-1239: Added
DurabilityLevelUnknownas default durability level. -
TXNG-127: Integrated transactions into the SDK.
Fixed Issues
-
GOCBC-1240: Fixed issue where
MutateInwas not setting durability level.
Go SDK 2.3 Releases
Version 2.3.5 (14 December 2021)
Version 2.3.5 is a maintenance release for the Go SDK 2.3.0.
New Features and Behavioral Changes
-
GOCBC-1152: Added uncommitted API stability support for custom conflict resolution to
BucketSettings. -
GOCBC-1156; Added volatile API stability support for
includeLocationstoSearchOptionsandOperatorto searchMatchQuery. -
GOCBC-1175: Added uncommitted API stability support for
storageBackendtoBucketSettings. -
GOCBC-1196: Added the
ErrorTextof the response body field toAnalyticsError,SearchError,ManagementError, andViewError, to allow easier debugging and error handling. Renamed theResponseBodyof theQueryErrorto beErrorTextand contain only the error text. Added theStatusCodeof the response toAnalyticsError,QueryError,ManagementError, andViewError. -
GOCBC-1200: Renamed
ErrRateLimitingandErrQuotaLimitingtoErrRateLimitedandErrQuotaLimited. Note: this is a breaking change, it not expected to impact any users.
Fixed Issues
-
GOCBC-1211: Fixed issues relating to rate limit error message parsing.
-
GOCBC-1210: Fixed issue where a quota limit error was returned rather than rate limit error for key value response status code 0x32.
Version 2.3.4 (16 November 2021)
Version 2.3.4 is a maintenance release for the Go SDK 2.3.0.
New Features and Behavioral Changes
-
GOCBC-1179: Added support to attempt graceful closing of connections.
-
GOCBC-1154; GOCBC-1184: Added RateLimitFailure and QuotaLimitFailure support for Couchbase Capella.
-
GOCBC-1193: Added the ResponseBody field to QueryError, to allow easier debugging and error handling.
Fixed Issues
-
GOCBC-1185: Fixed an issue with Queue and Set retrying during pop and remove operations.
-
GOCBC-1186: Fixed issue where logging meter could cause a deadlock on closing the cluster object.
-
GOCBC-1187: Fixed issue where logging meter could log a service/operation pair which has no operations.
-
GOCBC-1194: Changed ordering of route config bootstrapping, to check all seed nodes for the default network type first. This fixed an issue with stuck deployments using the Eventing service, after upgrade to server 7.0.2.
Version 2.3.3 (19 October 2021)
Version 2.3.3 is a maintenance release for the Go SDK 2.3.0.
New Features and Behavioral Changes
-
GOCBC-1178: We no longer remove poller controller watcher from cluster config updates.
Fixed Issues
-
GOCBC-1177: Fixed issue where a connection being closed by the server during bootstrap could cause the SDK to loop reconnect without backoff.
-
GOCBC-1183: Fixed issue where SSL certificates were be not verified when no root CAs were provided.
Version 2.3.2 (21 September 2021)
Version 2.3.2 is a maintenance release for the Go SDK 2.3.0.
New Features and Behavioral Changes
-
GOCBC-1009: Add support for Eventing function management.
-
GOCBC-1166: Check error codes and fallback to parsing messages in query index management.
Fixed Issues
-
GOCBC-1168: Fixed issue where cluster level HTTP operations could hang indefinitely.
-
GOCBC-1170: Fixed issue where Search
ScanConsistencywas sending an incorrect value forNotBounded.
Version 2.3.1 (17 August 2021)
Version 2.3.1 is a maintenance release for the Go SDK 2.3.0.
Fixed Issues
-
GOCBC-1140: Fixed issue where
ViewOptionswould return an error when usinggroup_level. -
GOCBC-1144: Added missing
minfunction toDisjunctionsearch query. -
GOCBC-1147: Fixed issue where an error occuring whilst fetching the error map during bootstrap could cause an indefinite hang.
-
GOCBC-1149: Fixed issue where
GetAllScopeswould panic on HTTP request send failure.
Go SDK 2.2 Releases
Version 2.2.5 (17 August 2021)
Version 2.2.5 is a maintenance release for the Go SDK 2.2.0.
Fixed Issues
-
GOCBC-1147: Fixed issue where an error occuring whilst fetching the error map during bootstrap could cause an indefinite hang.
-
GOCBC-1149: Fixed issue where
GetAllScopeswould panic on HTTP request send failure.
Version 2.3.0 (15 July 2021)
Version 2.3.0 is the first release in the Go SDK 2.3 series.
New Features and Behavioral Changes
-
GOCBC-935: Added support for Analytics remote and external link management.
-
GOCBC-936: Added support for compound dataverse names to Analytics management.
-
GOCBC-1096: Updated the tracing interface, and made it API stability level committed.
-
GOCBC-1037: Added support for
PreserveExpiryoption to key value operations. -
GOCBC-1044: Added support for meter interface, and default
LoggingMeterimplementation. -
GOCBC-1063: Added uncommitted support for
context.Contextto options blocks. -
GOCBC-1077: Updated errors returned on Query error code return of 12009.
-
GOCBC-1130: Updated Query error handling to return an authentication error on error code 13104.
Fixed Issues
-
GOCBC-1095: Fixed issue where View error contents were being parsed incorrectly.
-
GOCBC-1100: Fixed issue where the Search metrics
tookfield was being parsed incorrectly. -
GOCBC-1106: Fixed issue where a Search response containing a
hitsfield but the field beingnullwould lead to an error. -
GOCBC-1111: Fixed issue where any errors returned from the Search service were not being propagated through the SDK.
-
GOCBC-1127: Fixed issue where Query errors were sometimes not being parsed correctly.
-
GOCBC-1132: Fixed issue where benchmarks would not compile.
Version 2.2.4 (15 June 2021)
Version 2.2.4 is a maintenance release for the Go SDK 2.2.0.
Fixed Issues
-
GOCBC-1095: Fixed issue where errors returned from views was parsed incorrectly.
-
GOCBC-1102: Fixed issue where
WaitUntilReadywould never recover if one of the HTTP based services returned an error. -
GOCBC-1106: Fixed issue where
hitsbeingnullin a search response would leave to an internal error. -
GOCBC-1111; GOCBC-1112: Fixed issue where parsing search errors was using the incorrect field.
-
GOCBC-1100: Fixed issue where the
tookfield in search metrics was parsed incorrectly.
Version 2.2.3 (20 April 2021)
Version 2.2.3 is a maintenance release for the Go SDK 2.2.0.
New Features and Behavioral Changes
-
GOCBC-1071: Updated SDK to use new protocol level changes for get collection id.
-
GOCBC-1068: Dropped log level to warn for when applying a cluster config object is preempted.
-
GOCBC-1079: During bootstrap don’t retry authentication if the error is request cancelled.
-
GOCBC-1081: During CCCP polling don’t retry request if the error is request cancelled.
Fixed Issues
-
GOCBC-1074: Fixed issue where threshold log tracer was missing fields in log output.
-
GOCBC-1080: Fixed issue where SDK would always rebuild connections on first cluster config fetched against server 7.0.
-
GOCBC-1082: Fixed issue where bootstrapping a node during an SDK wide reconnect would cause a delay in connecting to that node.
-
GOCBC-1088: Fixed issue where the poller controller could deadlock if a node reported a bucket not found at the same time as CCCP successfully fetched a cluster config for the first time.
Version 2.2.2 (16 March 2021)
Version 2.2.2 is a maintenance release for the Go SDK 2.2.0.
New Features and Behavioral Changes
-
GOCBC-1010: Added uncommitted support for collections to
SearchOptions. -
GOCBC-1024: Added partition information to
QueryIndex. -
GOCBC-1056: Various performance enhancements to improve CPU usage.
-
GOCBC-1068: Dropped log level to warn for when applying a cluster config object is preempted.
Fixed Issues
-
GOCBC-1070: Fixed issue where
BucketManagerFlushBucketdidn’t returnErrBucketNotFoundwhen the bucket doesn’t exist. -
GOCBC-1066: Fixed issue where shutting down cluster config polling could lead to a panic.
Version 2.2.1 (16 February 2021)
Version 2.2.1 is a maintenance release for the Go SDK 2.2.0.
New Features and Behavioral Changes
-
GOCBC-1017: Updated server endpoints for collections manager.
-
GOCBC-1040: Updated json serialization of errors to include the underlying cause.
-
GOCBC-1054: Updated
MutateInto allow a blank path withRemoveSpec.
Fixed Issues
-
GOCBC-1047: Fixed issue where
GetAllScopeswas not setting the max expiry value for any collections. -
GOCBC-1052: Fixed issue where
GetAllDesignDocumentswas ignoring the providednamespace. -
GOCBC-1061: Fixed issue where an extra, empty, origin was added to user roles on fetching the user.
Version 2.2.0 (15 December 2020)
Version 2.2.0 is the first release in the Go SDK 2.2 series. It brings enhancements and bug fixes over 2.1.8, and improves compatibility with Server 6.6 and with 7.0β.
New Features and Behavioral Changes
-
GOCBC-869:
BucketSettingsMaxTTLfield deprecated in favour ofMaxExpiry. -
GOCBC-934: Added support for bucket level durability settings in
BucketManager. -
GOCBC-948: Changed document expiry durations so that expiry lengths of > 30 days sent as unix timestamps (now + expiry).
-
GOCBC-934: Added support for bucket level durability settings in
BucketManager. -
GOCBC-963:
GetResultExpiryfunction deprecated in favour ofExpiryTime. -
GOCBC-972: Added support for
ScoretoSearchOptions. -
GOCBC-1014: Updated search
GeoPolygonsupport to API stability committed. -
GOCBC-1015: Updated
QueryOptionsFlexIndexsupport to API stability committed. -
GOCBC-1026: Updated
BucketSettingsephemeral eviction policies support to API stability committed.
Fixed Issues
-
GOCBC-1022: Fixed issue where having multiple buckets open could cause view requests to be sent to an incorrect bucket.
-
GOCBC-1021: Fixed issue where having multiple buckets open could cause view manager requests to be sent to an incorrect bucket.
-
GOCBC-1028: Fixed issue where bootstrapping against a non-kv node could never successfully fully connect.
Go SDK 2.1 Releases
Version 2.1.8 (17 November 2020)
Version 2.1.8 is a maintenance release for the Go SDK 2.1.0.
New Features and Behavioral Changes
-
GOCBC-937: Added uncommitted support for
GeoPolygonsearch queries. -
GOCBC-1005: Added document id to key value errors.
-
GOCBC-1006: Changed the log level for retry strategy retries from info to debug.
Fixed Issues
-
GOCBC-1007: Fixed issue some operations were being incorrectly sent to the retry orchestrator on errors.
Version 2.1.7 (20 October 2020)
Version 2.1.7 is a maintenance release for the Go SDK 2.1.0.
New Features and Behavioral Changes
-
GOCBC-938: Added uncommitted support for
FlexIndextoQueryOptions. -
GOCBC-942: Added uncommitted support for
Scopelevel queries. -
GOCBC-944: Added uncommitted support for
Scopelevel analytics queries. -
GOCBC-944: Added uncommitted support for
Usercollections level RBAC. -
GOCBC-994: Fixed issue where nil values used in subdoc
MutateInoperations would be rejected by the server. These values are now coerced into JSONnullvalues before sending. -
GOCBC-1001: Added missing
Terms,DateRanges, andNumericRangesfields toSearchFacetResult.
Fixed Issues
-
GOCBC-977: Fixed issue where analytics
GetPendingMutationswas looking for the incorrect data structure in the HTTP response body. -
GOCBC-990: Fixed issue where enhanced durability timeout adaptive algorithm was incorrect.
-
GOCBC-991: Fixed issue where authentication mechanisms were not correctly iterated on bootstrap.
-
GOCBC-996: Fixed issue where the
Mapdatastructure was using invalid paths forAtandExists.
Version 2.1.6 (15 September 2020)
Version 2.1.6 is a maintenance release for the Go SDK 2.1.0.
New Features and Behavioral Changes
-
GOCBC-979: Add ExpiryTime to GetResult, providing the point in time at which a document will expire.
Fixed Issues
-
GOCBC-969: Fixed issue where the SDK would attempt to parse query metrics even if they weren’t present.
-
GOCBC-976: Fixed issue where custom transcoders were not supported for performing a get request with expiry.
-
GOCBC-978: Fixed issue where it was possible for more than one request to trigger switching from unknown to pending state for a given collection.
-
GOCBC-981: Fixed issue where setting the
networkconnection string property todefaultwould be discarded.
Version 2.1.5 (18 August 2020)
Version 2.1.5 is a maintenance release for the Go SDK 2.1.0.
New Features and Behavioral Changes
-
GOCBC-926: Added a new
Clusterlevel option to set which authentication mechanisms to use. -
GOCBC-962: Exposed the
ThresholdLogTracerand corresponding options so that threshold logging can be configured. The threshold logger can then be set on theClusterlevel options asTracer. Note: The threshold logger is the default tracer used by the SDK.
Fixed Issues
-
GOCBC-718: Fixed issue where errors would be silently swallwed when performing JSON unmarshalling of search and view queries. Unmarshalling errors will now be surfaced by the
result.Err()function after iterating results. -
GOCBC-950: Fixed issue where the SDK was not performing HELLO with the JSON feature enabled, leading to some KV error message context being lost.
-
GOCBC-968: Fixed issue where n1ql indexes were being created using prepared statements.
Version 2.1.4 (21 July 2020)
Version 2.1.4 is a maintenance release for the Go SDK 2.1.0.
Fixed Issues
-
GOCBC-925: Fixed issue where errors could not be accessed for queries responding with a HTTP 200 status code but containing errors. Any errors that are included in the query response when the status code is 200 will now be surfaced through the result
Errcall. -
GOCBC-928: Fixed issue where enhanced durability could be incorrectly flagged as unsupported.
-
GOCBC-931: Fixed issue where enhanced durability timeouts were being sent as seconds rather than milliseconds.
-
GOCBC-945: Fixed issue where ephemeral buckets could not be created using the
BucketManager. -
GOCBC-946: Fixed issue where
MaxTTLwas being sent as nanoseconds rather than seconds when creating buckets using theBucketManager. -
GOCBC-955: Fixed issue where xattrs were being reordered when being moved to the front of the list in subdoc operations.
Version 2.1.3 (1 July 2020)
Version 2.1.3 is an off-cadence release for the Go SDK 2.1.0.
Fixed Issues
-
GOCBC-941: Fixed issue where
WaitUntilReadyat theClusterlevel would always timeout.
Version 2.1.2 (16 June 2020)
Version 2.1.2 is a maintenance release for the Go SDK 2.1.0.
Fixed Issues
-
GOCBC-879, GOCBC-890: Fixed issue causing
Clusterlevel operations to return errors when performed before underlying cluster or bucket connections are ready. These operations (query, search, analytics, views, management APIs) will now behave like key value operations - waiting for connections to be ready before they are sent. TheWaitUntilReadycall can still be used for verifying that connections are ready. -
GOCBC-891: Fixed issue where the
Nameproperty of aRolewas being sent as the incorrect json field name. -
GOCBC-897: Fixed issue where operations with incredible short timeouts (timing out before operation sent) could cause a data race.
-
GOCBC-900: Fixed issue where
IgnoreIfExistsoption was being ignored for query index management. -
GOCBC-906: Fixed issue where enhanced durability could be incorrectly set as unsupported on early operations.
-
GOCBC-914: Fixed issue where operations using named collections could be sent with an incorrect collection ID in queued before the collection is known.
Known issues
-
GOCBC-941: Performing
ClusterlevelWaitUntilReadynever completes within the timeout. This issue was introduced whilst fixing the behaviour for operations at theClusterlevel when theWaitUntilReadycall is not used. The workaround for this is to not use theClusterlevelWaitUntilReadycall,Clusterlevel operations will now be queued until the SDK has connected and setup anyway.
Version 2.1.1 (19 May 2020)
Version 2.1.1 is a maintenance release for the Go SDK 2.1.0.
New Features and Behavioral Changes
-
GOCBC-778: Updated legacy durability polling to use a backoff rather than a fixed interval.
-
GOCBC-824: Enhanced timeout errors to contain more information and match up with the Response Time Observability RFC.
-
GOCBC-828: Added
MaxExpiryto theCollectionSpec. -
GOCBC-870: Updated
GetAllIndexesto only fetch GSI indexes. -
GOCBC-884: Improved logging to always log the cluster config when fetched.
-
GOCBC-888: Re-enabled HTTP dispatch traces.
Fixed Issues
-
GOCBC-691: Fixed issue where operations on unknown collections (when using 6.5 developer preview) are not automatically retried.
-
GOCBC-757: Fixed issue where an array of arrays could cause a failure when using
GetwithProjections. -
GOCBC-882: Fixed issue where an invalid cluster config would trigger a shutdown of the underlying core SDK causing operations to fail.
-
GOCBC-884: Fixed issue where
UpsertUsersent an invalid request if a role was specified with no bucket.
Known issues
-
GOCBC-879, GOCBC-890: Performing
Clusterlevel operations (query, search, management APIs) before underlying cluster or bucket connections are ready causes errors to be returned. To mitigate this theerr := WaitUntilReady(time.Duration, WaitUntilReadyOptions)operation can be used on eitherClusterorBucketwhich will either:-
Return no error if connections are setup and ready for use
-
Return a
TimeoutErrorif connections are not ready within the specified time limit.
-
Go SDK 2.0 Releases
Version 2.0.4 (21 April 2020)
Version 2.0.4 is a maintenance release for the Go SDK 2.0.0.
New Features and Behavioral Changes
-
GOCBC-844: Updated to the latest version of gocbconnstr.
Fixed Issues
-
GOCBC-838: Fixed issue where HTTP endpoints were being used when SSL is enabled.
-
GOCBC-851: Fixed issue where
ServerNamewas not being set on thetls.Configwhen SSL was use. -
GOCBC-853: Fixed issue where using
PasswordAuthenticatorwith a root CA and SSL would cause a panic. -
GOCBC-831: Fixed issue where search consistency options were not being set in the request payload.
Version 2.0.3 (17 March 2020)
Version 2.0.3 is a maintenance release for the Go SDK 2.0.0.
New Features and Behavioral Changes
-
GOCBC-662: The server requires that any subdoc xattr ops are at the beginning of the ops list. If the user provides an ops list containing subdoc xattr ops out of order, the SDK will now reorder it for them and then reorder it back again when it gets the result. This ensures that
ContentAtworks as expected. -
GOCBC-700: Made improvements to errors returned from management operations. They now provide more contextual information.
-
GOCBC-716: SDK now returns a
FlushNotEnablederror if bucket flush not enabled. -
GOCBC-719: SDK now consistently creates tracing spans for all HTTP requests.
-
GOCBC-728: Added cluster level Ping operation.
-
GOCBC-807: Updated best effort retry strategy to use an exponential backoff calculator.
-
GOCBC-820: Removed
context.Contextfrom search index manager operations. Note that whilst this is a breaking change it was deemed best to break it and make sure any users who are using it know that they are using unused functionality.
Version 2.0.2 (21 February 2020)
Version 2.0.2 is an off-cycle release for the Go SDK 2.0.0.
New Features and Behavioral Changes
-
GOCBC-805: Updated timeout behavior across the SDK to be consistent. If an operation level timeout is provided then it is used, otherwise the respective global timeout is used.
Fixed Issues
-
GOCBC-804: Fixed issue with timeouts not being respected for HTTP requests, leading to them never timing out.
Version 2.0.1 (19 February 2020)
Version 2.0.1 is a maintenance release for the Go SDK 2.0.0.
Fixed Issues
-
GOCBC-701: Fixed issue with enhanced prepared statements not being used.
-
GOCBC-702: Fixed issue with CA root certificates not being able to be provided.
-
GOCBC-759: Fixed issue with streaming results for HTTP based services timing out unexpectedly.
-
GOCBC-772: Fixed issue with many of the management API functions timing out immediately.
-
GOCBC-773: Fixed issue with queries that do not return rows (e.g. mutations) causing errors.
-
GOCBC-777: Fixed issue with failing operations causing nil pointers.
-
GOCBC-783: Fixed issue with Exists returning incorrectly if the document was recently deleted.
-
GOCBC-784: Fixed issue with Unlock returning a doc not found error instead of cas mismatch.
-
GOCBC-787: Fixed issue with some (xattr related) subdoc operations sending invalid packets.
-
GOCBC-789: Fixed issue with search index manager FreezePlan function using an invalid HTTP method.
-
GOCBC-790: Fixed issue with user manager sometimes parsing user role origins incorrectly.
-
GOCBC-796: Fixed issue with cccp poller hanging if the get cluster config op timed out.
Version 2.0.0 (18 January 2020)
Version 2.0.0 is the first release for the Go SDK 2.0.0.
New Features and Behavioral Changes
-
GOCBC-510: Dropped support for connecting using the http scheme.
-
GOCBC-534: Added support for retry handling.
-
GOCBC-652: Added support for circuit breakers.
-
GOCBC-655: Added support for enhanced timeout errors providing more information about operations which timeout.
-
GOCBC-656: Added support for threshold logging tracer.
-
GOCBC-680: Updated how we expose and handle errors.
-
GOCBC-694: A large number of updates including: How query and analytics results are iterated. Minor renaming of various types. Moving search facets, sorting, and queries to a search subpackage. Removing serializers.
-
GOCBC-740: Updated expiry options to be
time.Duration. -
GOCBC-760: Moved authenticator to ClusterOptions.
Pre-releases
Numerous Alpha and Beta releases were made in the run-up to the 2.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.