Release Notes for Couchbase Server 8.0

    New Features

    These release notes are focused on bug fixes and breaking changes.

    For information about new features and major improvements made in Couchbase Server 8.0, see What’s New.

    Release 8.0.1 (March 2026)

    Couchbase Server 8.0.1 was released in March 2026. This maintenance release contains fixes to issues.

    Fixed Issues

    Cluster Manager

    MB-69026

    Addressed an issue with stuck rebalance email alerts in Couchbase Server.

    This fix resolves problems observed when "Require encryption (TLS)" was configured, causing alert failures.

    MB-69650

    A problem was introduced in 7.6.2 where the presence of a Cloud Native Gateway in the cluster would cause issues for services connecting to the cluster manager.

    The presence of Cloud Native Gateway no longer causes these issues.

    MB-70441

    The upgrade to Erlang version 26 introduced a change in behavior which requires peer certification when TLS is being used for Alert emails. The peer certification introduced with the changes for this ticket uses the trusted CA certificates provided by the operating system.

    MB-70597

    Prior to this fix, the ro_security_admin role user did not have read access to security related groups via a GET of /settings/rbac/groups. After this fix, ro_security_admin will be able to see all groups including the security ones

    MB-70629

    RBAC groups containing security_admin_local, security_admin_external, or ro_admin roles are not handled correctly on upgrade to 8.0. The upgrade handling should replace:

    • security_admin_local with security_admin + local_user_admin

    • security_admin_external with security_admin + external_user_admin

    • ro_admin with ro_admin + ro_security_admin

    The issue also occurs when restoring users from a backup taken on a release prior to 8.0.

    The workaround for both the upgrade and restore case is to manually correct the affected users after the upgrade/restore completes.

    Query Service

    MB-68969
    • With multi-collection indexes that contained fields with include in _all setting enabled - there was a possibility for false positives to show up for field agnostic (composite field) queries. This has been addressed by denying the sargability for such indexes.

    • Addressed an issue where fields not belonging to a particular keyspace were being included in multi-collection indexes.

    • Addressed a bug that could influence composite field (_all) availability based on the order in which fields were processed.

    MB-69081

    To retrieve a document’s expiration, the user had to specify the sub-path explicitly, i.e., META().expiration. A call to the META() function without the sub-path would return the default expiration value 0 always which was incorrect.

    Now, when a user’s query invokes the META() function without explicitly specifying the subpath, the document’s expiration value is returned.

    MB-69083

    Problem:

    A query may return an incorrect result under the following conditions:

    • query contains one or more joins

    • one of the joins involves a sub-query (FROM clause subquery)

    • the FROM clause sub-query has a GROUP BY and/or aggregates

    • the FROM clause sub-query can take advantage of index group/aggregate pushdown (this requires an appropriate secondary index)

    • CBO is ON, and UPDATE STATISTICS has been run on all keyspaces/indexes involved

    MB-69955

    CYCLE was added as a KEYWORD for RECURSIVE WITH’s CYCLE subclause.

    This causes a syntax error when a path or subpath’s case-insensitive identifier is named cycle when users upgraded to a version that supported the recursive with feature WITH recursive clause

    This is now handled by allowing cycle keyword as a permitted identifier.

    MB-70112

    When a prepared request is made with the auto_execute request parameter set as true, the request would incorrectly error out with error: Unrecognizable prepared statement - cause: JSON unmarshalling error: auto_execute did not produce a prepared statement

    In this release the server silently ignores the auto_execute request parameter when the request is a prepared request.

    Eventing Service

    MB-69687

    In version 8.0, a security vulnerability was identified in the Cluster Manager when node-to-node encryption is enabled and client certificate authentication is configured as Hybrid or Mandatory. This issue, which is not present in releases prior to 8.0, could be exposed via the Eventing service, potentially allowing a user to select and interact with scopes or collections beyond their assigned RBAC permissions. This release (8.0.1) resolves the underlying issue in the Cluster Manager to ensure that RBAC enforcement is strictly maintained for services across all mutual TLS (mTLS) configurations.

    Index Service

    MB-69935

    Updated chronology for certain storage API calls to avoid rare corner cases of shard metadata mismatch.

    Search Service

    MB-70388

    Fixed an issue where we did not set docvalues for geopoint fields internally, causing it to be computed on demand for every query

    Tools

    MB-67774

    Added support for Debian 13 (Trixie).

    MB-70235

    In 8.0.0 restoring to a 7.6 and below cluster with --auto-create-buckets did not work as we were sending a new setting. We now omit the setting depending on the version.

    MB-70255

    Addressed a bug where buckets with cross-cluster versioning enabled (XDCR enable cross-cluster versioning) would cause a merge to fail.

    Known Issues

    For Couchbase Server 8.0.1 was released in March 2026, these are the known issues that aren’t yet resolved.

    Search Service

    MB-70770

    In extremely rare scenarios, document deletions may not be consistently reflected in the index. As a result, a small number of documents that have been successfully deleted from the KV layer may continue to persist in the index as stale entries.

    This condition is highly infrequent and non-deterministic, but it can lead to minor discrepancies in document counts between FTS and KV. Such inconsistencies are typically limited in scope and involve only a very small number of documents; however, they may impact count-based validations or comparisons between the two systems.


    Release 8.0 (October 2025)

    Couchbase Server 8.0 was released in October 2025. This release contains fixes to issues.

    Fixed Issues

    Cluster Manager

    MB-30260

    Couchbase Server now supports locking/unlocking users.

    This puts the user in a state where they are unable to authenticate against Couchbase, while being able to unlock them at a later time, allowing them to authenticate again.

    MB-31823

    Couchbase Server now supports giving users a temporary password.

    Giving the user a temporary password puts the user in a state where they must first change their password in the UI before they can perform any actions. This can be used to hand out user credentials, while ensuring that those credentials do not continue to be used, for security assurance.

    MB-50939

    We have enhanced the security of node-to-node (N2N) communication. Previously, N2N traffic was authenticated using basic authentication. With this release, when N2N encryption is enabled, communication between nodes now uses mutual TLS (mTLS) instead of basic authentication.

    MB-60349

    Now you can add or remove non-Data Services dynamically on existing nodes in a cluster, without adding or removing nodes. Rebalancing is automatically triggered to distribute service workloads and complete the modification. These are the services that can be modified:

    • index (Index Service)

    • n1ql (Query Service)

    • fts (Search Service)

    • cbas (Analytics Service)

    • eventing (Eventing Service)

    • backup (Backup Service) You can modify these services using the Couchbase UI, REST API and CLI.

    MB-61457

    The following data service settings are now supported in the /pools/default/buckets REST api

    • accessScannerEnabled (true | false)

    • expiryPagerSleepTime (0 - maxInt, default 600)

    • memoryLowWatermark (50-89, default 75)

    • memoryHighWatermark (51-90, default 85)

    • warmupBehavior (backround | blocking | none)

    MB-63755

    The Cluster Manager now supports tracking a latest time of use for users.

    Once enabled for certain users, this can be used to identify if they become inactive from the perspective of the Cluster Manager, i.e. seeing when they last used the UI. Please note that this does not cover other activity by users, so this should not be used to monitor activity of applications users.

    MB-65779
    Cluster Manager

    A new REST API has been introduced to facilitate the deletion of specific global memcached settings, enabling users to reset these settings to their memcached defaults. This change only impacts "extra" settings, which are not always passed to memcached.

    Data Service

    The Data-Service external_auth_request_timeout is now configurable, allowing users to set a value between 0 and the maximum 32-bit unsigned integer value. The default is set to 60 seconds, and the value can be passed in seconds.

    MB-66615

    The bucket statistics REST API GET /pools/default/buckets/[bucket-name]/stats is deprecated and replaced with GET /pools/default/stats/range/[metric_name]/[function-expression]. Similarly, to retrieve statistics for multiple metrics, Couchbase supports the REST API POST /pools/default/stats/range. For retrieving the XDCR statistics details, instead of the REST API GET /pools/default/buckets/[source_bucket]/stats/[destination_endpoint], Couchbase now supports the REST API GET /pools/default/stats/range/[statistics_name].

    MB-67106

    Metric Rename – Cache Miss Ratio → Get Miss Ratio The Cache Miss Ratio metric name suggested it measured memory or disk caching performance. In reality, as of version 7.6.2, it was redefined to measure the proportion of read (get) operations that fail because the requested key is not present in the bucket at all. To eliminate this confusion, the metric has been renamed to Get Miss Ratio.

    Data Service

    MB-9418

    Configurable Warmup Behavior (Background Warmup):

    The new Warmup behaviour setting, configured using warmupBehavior in the REST API, controls when a persistent bucket becomes fully available for read and write operations after a bucket restart. This setting replaces multiple warmup threshold parameters with a single configuration point:

    • background (default): The bucket becomes fully available as soon as required metadata is loaded from storage. The bucket’s cache is then filled in the background until memory usage reaches the low watermark (memoryLowWatermark).

    • blocking: This is the original behaviour. The bucket becomes read-available as soon as required metadata is loaded from storage, then continues filling the cache until memory usage reaches the low watermark (memoryLowWatermark). The bucket becomes fully available only after this point.

    • none: Disables warmup. The bucket becomes fully available as soon as required metadata is loaded from storage. The cache remains empty.

    API Changes: the REST API now includes the per-bucket setting warmupBehavior. The previous advanced tuning settings warmup_min_items_threshold and warmup_min_memory_threshold have been removed from the cbepctl interface.

    MB-60542

    The metric kv_vb_ht_memory_bytes is deprecated as it measured the overhead per-hashtable vs the total memory used by the hashtable. The metric is replaced with kv_vb_ht_memory_overhead, which reflects what is being measured.

    In this release, both the metrics will exist, but kv_vb_ht_memory_bytes will eventually be removed.

    Any system using kv_vb_ht_memory_bytes should migrate to using kv_vb_ht_memory_overhead.

    MB-61385

    SET and DELETE with Meta operations could distort the vbucket max_cas if a faulty CAS value is provided in the operation, setting the vbuckets max_cas to an unusually high or inconsistent value. Inadvertently affecting the Hybrid Logical Clock (HLC) and Last Write Wins (LLW) conflict resolution via XDCR. In certain cases, this resulted in legitimate mutations being skipped or ignored during replication. For this reason, the system now fails front-end operations with a CAS value that exceeds the hlc_max_future_threshold, default value of 65 minutes, to prevent a vbucket’s max_cas from getting distorted.

    MB-62295

    Previously audit would log to a file named audit.log and as part of rotation the file was renamed to a different name. In this release, this is replaced by audit.log being a symbolic link to the file currently being written to.

    MB-62647

    kv_ep_mem_low_wat_percent_ratio and kv_ep_mem_high_wat_percent_ratio used to report values 0 - 0.01, instead of 0 - 1.

    The values are correctly remapped to be in the 0–1 range.

    MB-62678

    Resolved an issue where TTL-driven deletions via VBucket::deleteItem could generate invalid tombstones containing a document body. This issue occurred when TTL was triggered during the second phase of a 2-phase delete operation. The fix ensures that when TTL triggers at CMD_DEL, the document body is correctly removed and a valid tombstone is generated.

    MB-62969

    The support for the following Data Service settings are removed from cbepctl:

    • access_scanner_enabled

    • exp_pager_stime

    • warmup_min_items_threshold

    • warmup_min_memory_threshold

    • secondary_warmup_min_items_threshold

    • secondary_warmup_min_memory_threshold The settings are now supported via the ns_server REST API /pools/default/buckets`as `accessScannerEnabled, expiryPagerSleepTime, warmupBehavior, memoryLowWatermark, and memoryHighWatermark.

    MB-63827

    Version

    Description

    Resolution

    7.2.7

    DCP connection metrics for connection names not conforming to server format are not exposed to Prometheus.

    The metrics are aggregated and exposed with connection_type="_unknown".

    7.6.6, 8.0.0

    DCP connection metrics for connection names not conforming to server format are not aggregated by connection type when exposing to Prometheus, potentially producing a large number of time series.

    The metrics are aggregated and exposed with connection_type="_unknown".

    MB-63938

    It is no longer possible to run commands such as mcstat [options] statgroup1 statgroup2 to fetch multiple stat groups. In 8.0 this no longer supported to make it easier to pass arguments to the various stat groups.

    Pre 8.0 a user would need to add quotes (or escape the whitespace) between the stat group like:

    $ mcstat [options] "vbucket-details 1"

    In 8.0 this may be written as

    mcstat [options] vbucket-details 1

    MB-65779
    Cluster Manager

    A new REST API has been introduced to facilitate the deletion of specific global memcached settings, enabling users to reset these settings to their memcached defaults. This change only impacts "extra" settings, which are not always passed to memcached.

    Data Service

    The Data-Service external_auth_request_timeout is now configurable, allowing users to set a value between 0 and the maximum 32-bit unsigned integer value. The default is set to 60 seconds, and the value can be passed in seconds.

    MB-67106

    Metric Rename – Cache Miss Ratio → Get Miss Ratio The Cache Miss Ratio metric name suggested it measured memory or disk caching performance. In reality, as of version 7.6.2, it was redefined to measure the proportion of read (get) operations that fail because the requested key is not present in the bucket at all. To eliminate this confusion, the metric has been renamed to Get Miss Ratio.

    Views

    MB-30260

    Couchbase Server now supports locking/unlocking users.

    This puts the user in a state where they are unable to authenticate against Couchbase, while being able to unlock them at a later time, allowing them to authenticate again.

    MB-31823

    Couchbase Server now supports giving users a temporary password.

    Giving the user a temporary password puts the user in a state where they must first change their password in the UI before they can perform any actions. This can be used to hand out user credentials, while ensuring that those credentials do not continue to be used, for security assurance.

    MB-62639

    Couchbase Server now allows users to specify the network type when adding a self-managed target.

    MB-67213

    Metric Rename – Cache Miss Ratio → Get Miss Ratio The Cache Miss Ratio metric name suggested it measured memory or disk caching performance. In reality, as of version 7.6.2, it was redefined to measure the proportion of read (get) operations that fail because the requested key is not present in the bucket at all. To eliminate this confusion, the metric has been renamed to Get Miss Ratio.

    MB-67280

    Change to Bucket Priority Settings

    As part of improving background task scheduling, we have replaced the legacy implementation with a standardized, more advanced scheduler. As a result, setting a bucket’s priority to high or low no longer affects system behavior. Consequently, the option to set bucket priority has been removed from the UI.

    Previously, task scheduling relied on a basic two-priority queue (high and low), which had limitations—such as busy polling. The new scheduling mechanism (introduced in MB-36956) eliminates these issues.

    Bucket priority settings are still available via the REST API and CLI to maintain compatibility with existing customer scripts and tooling.

    XDCR

    MB-11575

    XDCR now supports the identification of Incoming Replications on a cluster. The Incoming Replications can be viewed on the XDCR tab of the UI or retrieved by using the REST API

    MB-58989

    In this release, XDCR introduces the new Conflict Logging feature. It detects and logs concurrent conflicts that occur in different clusters but on the same document version due to independent modifications by locally connected applications during Active-Active replication.

    MB-62507

    Before this fix, various loggers all share the same logging level. Setting the logger to Debug, for example, would cause all components to print debug messages that clogs the log files. This fix now introduces the ability to set more granular levels of logging for each component as needed.

    MB-62564

    This release introduces bundling with xdcrDiffer, which is a diagnostic utility. This utility verifies data consistency between XDCR clusters. It identifies missing or mismatched documents by comparing metadata and content hashes across source and target clusters.

    MB-66140

    In some scenarios, due to race conditions, changing the filter expression or explicit/migration mapping may cause the replication to fail streaming from the beginning. As a consequence, some Source bucket documents may get missed from being replicated to the Target bucket. This has been fixed in 8.0. It is advised to avoid changing these three replication settings:

    • filterExpression

    • collectionsExplicitMapping

    • collectionsMigrationMode

    until all nodes in the cluster have been upgraded.

    Query Service

    MB-62793

    The original limit of one XATTR per KV op was relaxed to a maximum of 16 in KV server version 7.6; this ticket explores extending that relaxation to queries.

    With this change, users can:

    1. Use up to 15 XATTR fields in their query.

    2. CREATE INDEX no longer imposes a limit on the number of XATTR fields that can be indexed.

    MB-63459

    New to this release is the ability to manipulate document extended attributes (xattrs) via common SQL++ statements.

    INSERT and UPSERT statement OPTIONS may now include an “xattrs” object element detailing additions and changes to the xattrs (omissions do not delete xattrs). The UPDATE statement now supports SET and UNSET of meta().xattrs.{attribute} elements.

    MB-66703

    Added a plan version to prepared statements and logic to trigger reprepare when outdated plans are detected. This avoids duplicate OFFSET execution in mixedmode clusters due to changes in ORDER BY and LIMIT/OFFSET handling.

    MB-67849

    The recent builds of Couchbase Server versions 7.2.7 through 8.1.0 and Enterprise Analytics 2.1.0 include updates from the go_json library to address int64 overflow issues reported under MB-67849. The updates involve implementing proper checks for int64 overflow to properly represent large numbers (greater than 263 or less than -263).

    Index Service

    MB-64982

    When shard affinity is enabled, the indexer internally maps all replicas of an index to an alternateID. If such an alternateID exists on a node outside the list of nodes, instead of preventing replica creation, the system creates a new replica with the same alternateID on different nodes. This leads to rebalance failures on the affected nodes.

    Search Service

    MB-64766

    Introduced a new decoded_sort field in query responses. This provides human-readable sort values by decoding geo distances (in meters) and numeric fields, while returning strings as-is. This is only done when the type field is specified in the sort definition of the query.

    Tools

    MB-44863

    When using the Backup Service, you can now configure a retention period for a repository, automating the deletion of old backups if desired. You can choose a default retention period for a repository, and you can choose to override this default for particular individual backups if desired.

    MB-60337

    Previously, it was possible to remove backups which would cause dependent incremental backups to become invalid if they depended on those deleted backups. With this release, such deletes are prevented by default, but can be overridden with the new --disable-safe-remove-check flag.

    MB-62564

    This release introduces bundling with xdcrDiffer, which is a diagnostic utility. This utility verifies data consistency between XDCR clusters. It identifies missing or mismatched documents by comparing metadata and content hashes across source and target clusters.

    MB-62655

    The new Query AWR (Automatic Workload Repository) Report Generator tool allows customers to generate reports on query performance statistics. This tool requires AWR to be enabled on the cluster.

    MB-63389

    Memcached bucket removal – Memcached buckets, deprecated in 6.5.1, have been fully removed in 8.0.0. Cluster upgrades from earlier versions will fail if Memcached buckets are present. Remove all Memcached buckets before upgrading.

    MB-66173

    Automated the process of resolving name conflicts between collections or scopes in the backup and those in the target cluster, during a restore. For this purpose, we have added a new flag, --auto-resolve-conflicts to the cbbackupmgr restore parameter.

    Breaking changes 8.0 (October 2025)

    Couchbase Server 8.0 was released in October 2025. This release contains the following breaking changes:

    Cluster Manager

    MB-47905

    We have introduced the ability to support both client certificate authentication and n2n encryption at the same time.

    However, the client certificate will not work with the old OOTB CA certificates due to the extended attribute.

    Therefore, you will need to regenerate your OOTB CA certificates (if the CA certificate is the one from before 7.6 or if they have the attribute above) before this feature is enabled.

    MB-62777

    Magma with 128 vBuckets Now Default Storage Engine

    Starting with Couchbase Server Enterprise 8.0, new buckets default to the Magma storage engine configured with 128 vBuckets, replacing Couchstore as the default.

    This change reduces the minimum memory quota from 1 GiB (required by Magma with 1024 vBuckets) to 100 MiB per node—matching Couchstore, while retaining Magma’s performance and efficiency benefits.

    For more details, see the What’s New page.

    Data Service

    MB-9418

    Configurable Warmup Behavior (Background Warmup): The new warmup_behavior setting, configured using warmupBehavior in the REST API, controls when a persistent bucket becomes fully available for read and write operations after a bucket restart. This setting replaces multiple warmup threshold parameters with a single configuration point:

    • background (default): The bucket becomes fully available as soon as required metadata is loaded from storage. The bucket’s cache is then filled in the background until memory usage reaches the low watermark (memoryLowWatermark).

    • blocking: This is the original behaviour. The bucket becomes read-available as soon as required metadata is loaded from storage, then continues filling the cache until memory usage reaches the low watermark (memoryLowWatermark). The bucket becomes fully available only after this point.

    • none: Disables warmup. The bucket becomes fully available as soon as required metadata is loaded from storage. The cache remains empty.

    API Changes: The REST API now includes the per-bucket setting warmupBehavior. The previous advanced tuning settings warmup_min_items_threshold and warmup_min_memory_threshold have been removed from the cbepctl interface.

    MB-63938

    It is no longer possible to run commands such as mcstat [options] statgroup1 statgroup2 to fetch multiple stat groups. In 8.0 this no longer supported to make it easier to pass arguments to the various stat groups.

    Pre 8.0 a user would need to add quotes (or escape the whitespace) between the stat group like:

    $ mcstat [options] "vbucket-details 1"

    In 8.0 this may be written as

    mcstat [options] vbucket-details 1

    MB-63946

    When using mcstat it is no longer possible to use --json=pretty.

    The request to pretty-print the JSON is ignored

    Users can use a pipe in conjunction with an external formatting tool such as jq to obtain formatted output:

    mcstat [options] --json [statgroup] | jq .

    Views

    MB-63212

    Couchbase Server 8.0 has removed support for Memcached buckets. They were deprecated in version 6.5.1.

    Before upgrading to Couchbase Server 8.0, you must remove any Memcached buckets from your cluster. You can replace them with ephemeral buckets which are similar to Memcached buckets but support features such as rebalance, backup, query, and eventing. See Bucket capabilities for a summary of the differences between Memcached and ephemeral buckets.

    If you do not remove your Memcached buckets, the upgrade process reports an error message telling you to remove the Memcached buckets before proceeding.

    MB-67280

    Change to Bucket Priority Settings

    As part of improving background task scheduling, we have replaced the legacy implementation with a standardized, more advanced scheduler. As a result, setting a bucket’s priority to high or low no longer affects system behavior. Consequently, the option to set bucket priority has been removed from the UI.

    Previously, task scheduling relied on a basic two-priority queue (high and low), which had limitations—such as busy polling. The new scheduling mechanism (introduced in MB-36956) eliminates these issues.

    Bucket priority settings are still available via the REST API and CLI to maintain compatibility with existing customer scripts and tooling.

    Index Service

    MB-63192

    The latest updates introduce a new shard assignment algorithm, impacting both vector and non-vector indexes by offering more aggressive sharing of plasma shards in version 8.0 compared to 7.6. This adjustment might affect performance when comparing upgrades from earlier versions like 7.2 to 8.0 or 7.6 to 8.0. Shard assignment logic should be functionally tested in these scenarios. The algorithm is behind a feature flag and can be toggled off to revert to older behaviors if needed. For Capella upgrades, it’s possible all shards might already exist, potentially requiring additional shards for vector indexes depending on resource availability. On-prem clusters keep file-based rebalance off by default. Performance testing, as noted in ongoing evaluations, indicates a 7% regression during initial index builds at CPU saturation, but no impact on incremental builds. The benefits include improved memory control, suggesting the changes are acceptable at this stage.

    Tools

    MB-60337

    Previously, it was possible to remove backups which would cause dependent incremental backups to become invalid if they depended on those deleted backups. With this release, such deletes are prevented by default, but can be overridden with the new --disable-safe-remove-check flag.

    MB-63389

    Memcached bucket removal – Memcached buckets, deprecated in 6.5.1, have been fully removed in 8.0.0. Cluster upgrades from earlier versions will fail if Memcached buckets are present. Remove all Memcached buckets before upgrading.

    Known Issues 8.0.0 (October 2025)

    For Couchbase Server 8.0.0 was released in October 2025, these are the known issues that aren’t yet resolved.

    Index Service

    MB-68626

    Vector Index Batch Build Memory Consumption

    When building multiple vector indexes in a batch, the system fetches random sample vectors from KV for all indexes simultaneously, even though only one index is trained at a time. If the indexer is not properly sized for build batch size, this can cause excessive memory consumption, leading to Out of Memory (OOM) kills.

    Root Cause: Indexer fetches and evaluates vectors for all indexes in the batch concurrently without throttling, creating significant memory overhead.

    Symptoms:

    • OOM kills during vector index build operations

    • High memory usage (HeapInUse approaching memory quota)

    • Fatal error: runtime: out of memory

    • Memory allocation failures during vector sampling

    Workaround: Properly size the indexer for random sample vectors and configure the index build batch size to limit the number of indexes built together by taking into account the available memory quota and vector sizes

    Documentation for Earlier Versions

    Documentation for earlier versions of Couchbase software can be found in the Documentation Archive.