Release notes for IBM Cloudant Classic
Use these release notes to learn about the most recent updates to IBM® Cloudant® for IBM Cloud® that are grouped by date and build number.
Ongoing changes
QuickJS
To support ES2023 JavaScript features and speed up index building, IBM Cloudant is replacing the SpiderMonkey JavaScript engine with QuickJS.
Read Migration to QuickJS from SpiderMonkey for full details on this change.
This could break some applications, and might require JavaScript updates in your design documents to align with QuickJS. Read the migration guide to understand whether this affects your instances.
Upcoming changes
Legacy authentication
To enhance security, Cloudant will enable temporary lockout of accounts in the coming months. After multiple login attempts using incorrect credentials, further login attempts will be denied for a period of time. To unlock your account, please wait for some time or change the password and then wait at least 5 minutes to ensure that the change propagates throughout the system.
The temporary lockout described here applies to legacy (non-IAM) credentials only.
December 2025
11 December 2025
The following changes were made in build 8681:
_bulk_getendpoint- Optimize error handling for the
_bulk_getendpoint. - Indexes
- Fix automatic index building when specifying
"language": "javascript_quickjs"in design documents (See QuickJS for Faster Index Builds).
October 2025
28 October 2025
The following changes were made in build 8677:
- Runtime environment
- Upgrade the runtime environment to the latest Erlang/OTP 27 release.
16 October 2025
- Provisioning
- The location ID for new provisions in Chennai has changed from 'in-che' to 'che01'. Existing instances provisioned with 'in-che' are not affected.
dbcopy is fully deprecated
The dbcopy feature is fully deprecated on IBM Cloudant Dedicated Cluster and IBM® Cloudant® for IBM Cloud®. It will be removed from usage as per the schedule below.
-
IBM Cloudant Dedicated Cluster: October 6, 2026
-
IBM® Cloudant® for IBM Cloud®:
- Lite plan : November 15, 2025
- Standard plan: October 6, 2026
- Dedicated Hardware plan : October 6, 2026
Dbcopy was a less used feature which enabled writing view index results to a database. Please note, this is not replication. Cloudant replication continues to be supported.
SpiderMonkeyJS is fully deprecated
SpiderMonkeyJS is fully deprecated on IBM Cloudant Dedicated Cluster and IBM® Cloudant® for IBM Cloud®. It will be removed from usage as per the schedule below. Customers are advised to switch to QuickJS. Read Migration to QuickJS from SpiderMonkey
-
IBM Cloudant Dedicated Cluster: October 6, 2026
-
IBM® Cloudant® for IBM Cloud®:
- Lite plan : October 6, 2026
- Standard plan: October 6, 2026
- Dedicated Hardware plan : October 6, 2026
IBM Cloudant uses the JavaScript engine for design documents and filters. Check the Do I need to take action? section for more information.
14 October 2025
The following changes were made in build 8673:
- Optimization
- Internal caching improves performance of writing and accessing data.
September 2025
18 September 2025
The following changes were made in build 8665:
- Query
- Improve the robustness of text-based queries. Read more about Cloudant Query
- Runtime environment
- Upgrade the runtime environment to the latest Erlang/OTP 26 patch release.
July 2025
17 July 2025
The following changes were made in build 8650:
- Cloudant Query
- Fix query parameter parsing mechanism to improve stability during cluster upgrades.
- Replicator
- Improve replicator application shutdown behavior.
June 2025
24 June 2025
The following changes were made in build 8620:
- Cluster setup
- Enhance cluster robustness during node restarts and cluster partitions.
- Optimization
- Improve efficiency of starting database servers.
- QuickJS
- Fix QuickJS bigint heap overflow.
- More robust out of memory handling.
- Replicator
- Reduce the chance of crashing replication jobs with the
ibrowse_stream_cleanuperrors.
May 2025
20 May 2025
The following changes were made in build 8612:
- Query
- A response to the
/_all_docsor/_design/<ddoc>/_view/<viewname>endpoints would previously be silently limited to 268,435,456 rows. This limit has been removed to avoid truncating results, though the endpoints are still subject to the HTTP request timeouts defined by the service. - Runtime environment
- Upgrade the runtime environment to the latest Erlang/OTP 26 patch release.
April 2025
24 April 2025
The following changes were made in build 8595:
- New built-in reducers for views
_first/_lastreducers return the first / last row associated with composite keys in the grouped views. For example, a view with keys of the form[device, timestamp]that specifies the_firstreducer will return the most recenttimestampfor eachdevicewhengroup_level=1is used at query time._top_N/_bottom_Nreducers return the top / bottomNrows associated with each key, whereNis in the range [1, 100] (inclusive).- For more information, see Views (MapReduce) and Grouping.
- Runtime environment
- Upgrade to the latest Erlang/OTP 26 release.
1 April 2025
The following changes were made in build 8588:
- Optimization
- Replication no longer re-replicates attachment bodies when the associated document is updated.
- QuickJS
- BigInt support.
Date.parsenow returnsNaNwhen dates are expressed as > 9 continuous digits.- Accept
/[\-]/uas a valid regular expression.
March 2025
13 March 2025
The following changes were made in build 8585:
- Attachments
- Fix attachment size calculation.
- Runtime environment
- Upgrade to the latest Erlang/OTP 26 release.
- Views
- Restore the ability to return error objects from maps for the latest JavaScript engine
QuickJS. - Welcome message
- Improve robustness of the
searchfeature status in the welcome message.
February 2025
26 February 2025
- Instance limits
- Add new
/_api/v2/user/capacity/databasesendpoint that returns the number of databases permitted for a Cloudant instance. - Add new
/_api/v2/user/current/databasesendpoint that returns the current database count of a Cloudant instance.
12 February 2025
The following changes were made in build 8577:
- TLS support
- Improve TLS security by verifying certificates for internal services.
January 2025
14 January 2025
- Provisioning
- Allow creation of Dedicated Hardware plan instances in the Chennai region.
8 January 2025
The following changes were made in build 8543:
- Runtime environment
- Upgrade to the latest Erlang/OTP 26 release.
November 2024
22 November 2024
The following changes were made in build 8542:
X-Couch-Request-IDHTTP header-
Allow users to specify the request ID using
X-Couch-Request-IDheader, which is useful for tracking down requests that fail to start in a timely manner when using a load balancer in front. - Cloudant Query
-
Introduced
allow_fallback(boolean) query parameter that determines whether_findcan fall back to a full database scan if the query does not specify an index, or if the specified index is invalid for the query. Ifallow_fallback=false, a400 Bad Requestis returned. The default value istrue. -
Prevent inserting illegal design documents via
_indexPOST request. - Replication
-
Improve the robustness of replication.
- Runtime environment
-
Downgrade to the latest Erlang/OTP 25 release.
- Welcome message
-
JavaScript engine
quickjswill show up in the list of welcome features if enabled as the default JavaScript engine.
October 2024
23 October 2024
The following changes were made in build 8537:
- Runtime environment
- Upgrade to the latest Erlang/OTP 26 release.
16 October 2024
The following changes were made in build 8536:
_changesendpoint- If the request includes
limitparameter,continuous/eventsourcefeed emission will stop after emitting the specified number of rows. - Replicator
- Prevent the replicator from creating conflicts in replication documents.
- Runtime environment
- Upgrade to the latest Erlang/OTP 25 release.
September 2024
19 September 2024
The following changes were made in build 8534:
- Legacy authentication
- Prepare for migration to a more secure password hashing scheme.
- Runtime environment
- Downgrade runtime environment to Erlang/OTP 25.
5 September 2024
The following changes were made in build 8524:
- Runtime environment
- Upgrade to the latest Erlang/OTP 26 release.
August 2024
7 August 2024
The following changes were made in build 8521:
_schedulerendpoint- Return a
400 Bad Requestresponse for_scheduler/docs/{path}in case of an invalid path, instead of500 function_clause. _search_analyzeendpoint- Authentication is now required to access the
_search_analyzeendpoint. COPYrequest- Prevent creation of new documents if
Destinationheader begins with_using the COPY method. - Replication
- Improve robustness of replication during rebalancing.
- Runtime environment
- Upgrade to the latest Erlang/OTP 25 release.
- Welcome message
- The CouchDB version in the welcome message was updated from "major
.minor.patch" to "major.minor.patch+cloudant", eg:3.3.3+cloudant. Cloudant applies its own customizations, extensions, and security fixes atop upstream CouchDB, therefore the CouchDB version number could be considered only a reference for compatibility. To make this distinction clear, the+cloudantsuffix was introduced.
June 2024
10 June 2024
The following changes were made in build 8513:
- IAM authentication
- JSON web tokens (JWT) added the
expclaim to ensure that user tokens are considered invalid once they expire. - Replicator
- Fix replicator session plugin to consider only
Set-Cookieheaders withAuthSessionset and ignore others.
5 June 2024
The following changes were made in build 8511:
- IAM authentication
-
Refresh access tokens when credentials change. Previously, an access token was allowed to expire before obtaining a new one with the new credentials.
- Runtime environment
-
Upgrade to the latest Erlang/OTP 25 release.
-
Add QuickJS as a Javascript engine option.
April 2024
26 April 2024
The following changes were made in build 8510:
- IAM authentication
- Add support for database resources in IAM access policies.
- Cloudant Query
- Fix a race condition that resulted in some query response execution stats incorrectly reporting zero for
total_keys_examined. See https://github.com/apache/couchdb/issues/4560 for more details. - Replicator
- Fix case clause error in replicator response. For more information, see Advanced replication.
- Runtime environment
- Upgrade to the latest Erlang/OTP 25.3.2.11 release.
March 2024
25 March 2024
The following changes were made in build 8495:
- Optimization
- Added compatibility for OTP 25 and improved performance.
20 March 2024
Several updates were made to Service Changes & Deprecations - removing TXE notification; adding previously announced deprecation of _show,
_list, _update, _rewrite functions; removing _find API accounting notice.
8 March 2024
- List of IBM Cloudant instances hosted on a dedicated environment
- The IBM Cloud Console GUI for IBM Cloudant instances on dedicated hardware plan now shows the list of instances hosted on the dedicated environment.
6 March 2024
The following changes were made in build 8490:
- Runtime environment
- Upgrade runtime environment back to Erlang/OTP 25 after addressing the related production issues.
February 2024
12 February 2024
The following changes were made in build 8472:
- Indexes
-
In rare cases, background index updates for specific indexes would fail until a database node was restarted. After a node restart, the node would immediately start updating these indexes. If this generated a lot of indexing activity, customer requests involving this node would see degraded performance during that activity. This release fixes the issue with background indexing failures. For more information, see Cloudant Query.
- Replication
-
Improve performance when updating replication documents.
-
Fix replication delays caused by conflicting jobs during internal data optimization. For more information, see Replication.
- Runtime environment
-
Downgrade runtime environment to Erlang/OTP 24.
January 2024
10 January 2024
The following changes were made in build 8469:
- Runtime environment
- Upgrade to Erlang/OTP-25.3.2.8.
December 2023
04 December 2023
The following changes were made in build 8462:
_active_tasks- Optimize
_active_tasksto better handle heavy workloads. - Indexing
- Improve robustness of index compaction.
- Cloudant Query
- Introduce
$beginsWithoperator. - Runtime environment
- Downgrade runtime environment to Erlang/OTP 24.
- Security
- Allow stronger on-disk password hashes without impacting database request performance.
November 2023
17 November 2023
- IBM Cloudant Dashboard
- Update the Cloudant Query explain page with a user-friendly view of the JSON output. The parsed view better explains how indexes are chosen to help the user create more efficient queries.
October 2023
24 October 2023
The following changes were made in build 8452:
- Runtime environment
- Upgrade to the latest Erlang/OTP 25 release.
18 October 2023
The following changes were made in build 8451:
- Security
- Scrub sensitive headers from JSON requests.
13 October 2023
The following changes were made in build 8448:
_db_updatesendpoint-
Remove
_db_updatesendpoint support. - Cloudant Query
-
Correct
_explainAPI to always return an array forfields. Return[]instead of"all_fields"if thefieldsparameter was unset. -
Prevent occasional duplication of paginated
textresults. - Legacy authentication
-
Send compatible AuthSession cookie when possible.
- Replicator
-
Fix
badrecorderror when cancelling transient replication job. -
Replace
kaboomwithopen_doc_revs_failederror. -
Use HTTP rules for hostname verification.
September 2023
14 September 2023
The following changes were made in build 8442:
_changesfeed-
Improve emitted changes feed sequence after a split.
-
Return the correct number of pending changes when
descending=true. - Design documents
-
_design_docs/queries/_local_docs/querieswith parameterkeyswill return only design / local documents respectively. - Legacy authentication
-
Send a session cookie after successful basic authentication to migrate users to a strong password hashing scheme without impacting performance for each request.
- Cloudant query
-
Remove duplicate elements from
indexable_fieldsresults. -
Correct the
_explainendpointrresponse field content from a byte array to an integer to match the declared API type. -
Rename the
_explainendpoint responsecoveredfield name tocoveringto match correctly the Apache CouchDB name. - Replicator
-
Fix undefined range in
mem3_reppurge replication logic. -
Crash replication jobs on unexpected 4XX errors.
-
Add
CouchDB-Replicator/...user agent to replicator/_sessionrequests. - Search
-
Correct the representation of empty faceted results from
0to{}to match the declared API type.See PR.
- Shard splitting
-
Allow resumption of failed jobs, and make
timeoutconfigurable. - Optimization
-
Stop the client process and clean up if the client disconnects.
August 2023
30 August 2023
The following changes were made in build 8435:
_all_dbsendpoint- Restrict
_all_dbsto accept only binarystart_key/end_keyparameters. _replicateendpoint- Authentication is required to access the
_replicateendpoint. - Cloudant Query
- Improve error messages in case of invalid field errors.
- Replicator
- Remove replicator endpoint proxy support.
July 2023
21 July 2023
The following changes were made in build 8430:
- Attachments
-
Fix multipart parser "attachment longer than expected" error.
-
Remove Content-MD5 header support.
-
Replace MD5 with xxHash in ETag generation.
- Cloudant Query
-
Return correct
keys_examinedvalue inexecution_statsfield. -
Improve error messages of the
_indexendpoint. - Optimization
-
Speed up internal replicator.
-
Optimize low-level file name calculations.
-
Use a faster sets implementation available since OTP 24.
- Replicator
-
Handle replicator instance start time during upgrades better.
- Resharding
-
Fix purge infos replicating to the wrong shards during shard splitting.
June 2023
05 June 2023
The following changes were made in build 8413:
_all_docsendpoint-
Do not return documents for non-string
keyparameter. - Filter view functions
-
Optimize by not unnecessarily re-compiling filter view functions.
- Geospatial
-
Remove geospatial functionality.
- Javascript
-
Treat javascript internal errors (such as Out of Memory) as fatal.
_local_docsendpoint-
Hide internal checkpoint documents by default in the
_local_docsresponse. - Cloudant Query
-
Return correct documents for queries with
$regexand text indexes. -
Optimize queries using keys-only covering indexes.
-
Add new covered Boolean field to
_explainendpoint to indicate whether query is covered by an index. -
Return 405 instead of 500 for invalid path under
_indexendpoint. - Partitioned database queries
-
Fix permissions required for partitioned
_findand_explainendpoints. - Runtime environment
-
Upgrade to the latest Erlang/OTP 24 release.
- View query
-
Treat single element
keysparameter same askey.
April 2023
03 April 2023
- IBM Cloudant Dashboard
- Update Dashboard to use Carbon 11's color theme.
The following changes were made in build 8382:
- Indexing
- Prevent
couch_index_serverfrom crashing under load. - Runtime environment
- Upgrade the runtime environment to latest Erlang/OTP 24 point release.
March 2023
14 March 2023
The following changes were made in build 8373:
_changesendpoint-
Enforce document ids
_changesfilter optimization limit. - Compaction
-
Active database size now decreases when users delete documents.
- Indexing
-
Enforce partition index count limits for (noninternally) replicated documents.
-
Optimize process pool management (fixes CVE-2023-26268).
- Query
-
Optimize by pushing down field selectors to shards.
- Replication
-
Replace auto-inserted VDU with BDU.
-
Constrain protocol types and socket options.
-
Upload design docs individually when you replicate with
bulk_get. - Runtime environment
-
Upgrade the runtime environment to Erlang/OTP 24 point release patched with
alias-cleanup-fix. - Views
-
Disable
stableandstaleparameters in POST requests to partitioned views.
January 2023
11 January 2023
The following changes were made in build 8349:
- IAM trusted profiles
- Fix bug in IAM trusted profiles.
- Runtime environment
- Upgrade runtime environment to Erlang/OTP 24.
November 2022
17 November 2022
The following changes were made in build 8341:
_bulk_getendpoint-
Optimize
_bulk_getendpoint. _changesendpoint-
Fix
eventsourceformatted feed. -
Remove support for the long-deprecated change sequence format.
dbcopy-
Prevent further use of
dbcopyfeature for all but current users. - Compaction
-
Fix smoosh
get_priority/2case clause. - Replication
-
Use the
_bulk_getendpoint for replication if available. -
Return a string for the default start sequence from
_scheduler/{jobs,docs}endpoints. _sessionendpoint-
Return error when POSTing to
/_sessionwith content type other thanapplication/x-www-form-urlencodedorapplication/json. - Runtime environment
-
Upgrade runtime environment to Erlang/OTP 23 patch release.
September 2022
21 September 2022
The following changes were made in build 8336:
- Runtime environment
- Upgrade runtime environment to Erlang/OTP 23 patch release.
- View collation
- Upgrade view collator to libicu 67.1.
August 2022
5 August 2022
The following changes were made in build 8335:
- Bulk docs
-
Improve performance for
_bulk_docsendpoint. - Compaction
-
Fix bugs in automatic compaction.
-
Fix race between database deletion and compaction.
- Document updates
-
Improve reliability of document updates during heavy load.
-
Return a 400 response for
new_edits=falsedocument update without revisions. - Replicator
-
Introduce numerous performance improvements.
June 2022
10 June 2022
The following changes were made in build 8310:
- All databases
-
Fix
skipandlimitparameters for_all_dbsand_dbs_infoendpoints. - Attachments
-
Wait until attachments are uploaded before response to client.
- Bulk docs
-
Return 500 errors if timeouts occur when documents are bulk loaded.
- Compaction
-
Retain compactor state across node reboots.
- IAM authentication
-
Retry
authzendpoint on failure. - Indexes
-
Prevent creation of indexes with empty
nameorddocfields. -
Improve index building during shard splitting.
- Replicator
-
Improve replicator stability during timeouts.
May 2022
25 May 2022
- Virtual Private Endpoints (VPE)
- VPE can now be created for IBM Cloudant instances on dedicated hardware.
13 May 2022
The following changes were made in build 8299:
- Runtime environment
- Upgrade runtime environment to Erlang/OTP 23 with fix for memory leak.
- Replicator
- Fix
function_clauseerror for replicated changes with a target VDU.
April 2022
14 April 2022
The following changes were made in build 8287:
- Runtime environment
- Downgrade runtime environment to Erlang/OTP 20.
March 2022
24 March 2022
The following changes were made in build 8278:
- IAM authentication
- Improve compatibility during upgrades.
- Document updates and compaction
- Improve efficiency of updating and compacting conflicted documents.
11 March 2022
The following changes were made in build 8269:
- Runtime environment
- Upgrade runtime environment to Erlang/OTP 23.
04 March 2022
The following changes were made in build 8266:
- Bulk docs
-
Return 400 Bad Request error for
_bulk_docswithnew_edits:falseand without_rev. Previously returned 500 error. -
Fix bug where Validate Document Update function interacts with
new_edits:falsesetting. - Indexing
-
Improve scalability by sharding the index server.
- Replicator
-
Set
instance_start_timeto the creation time of the database to restore the ability for the replicator to detect a database recreation event during a replication. - Search
-
Expose index signature in the
_search_infoendpoint response. - Security
-
Always send all the cookie attributes whenever we send a cookie. Only the value of AuthSession varies.
- Views
-
Track ICU collator version that is used to build the view and expose this information in existing endpoints.
-
Exposes list of collator versions in
_design/*/_infoendpoint response. -
The opaque collator version in
_node/*/_versionsendpoint response.
January 2022
28 January 2022
- Switch
Legacy Credentials and IAMtoIAM only - It is now possible to switch authentication methods from
Legacy Credentials and IAMtoIAM onlyby using the IBM Cloud console.
December 2021
03 December 2021
- IBM Cloud Monitoring integration
- Metrics are now available in the Frankfurt region.
November 2021
01 November 2021
The following changes were made in build 8243:
- Audit messages
- Order customer supplied fields last in audit messages.
- Changes feed
- Reduce changes feed rewinds when nodes are down or shards are moved.
- View collation
- Fix reduce view collation results for Unicode equivalent keys.
October 2021
01 October 2021
The following changes were made in build 8238:
- Changes feed
- Use shards moved from other nodes to help prevent changes feed rewind.
- Error message
- Reduce frequency of
No DB shards could be openederror message. - Shards with purge sequences
- Fix splitting shards with large purge sequences.
- View results
- Fix view results with
limit=0andsorted=false. - Sort view results
- Properly sort view results with
descending=truewhen a key list is provided. - Row aggregation
- Stabilize view merge row aggregation.
September 2021
1 September 2021
The following changes were made in build 8220.
- Changes feed rewinds
- Avoid changes feed rewinds after shard moves.
- Response code
- Fix response code for attachment deletion with wrong revision.
- Indexes
- Ensure that indexes are correctly closed.
August 2021
1 August 2021
The following changes were made in build 8202:
- IAM trusted profiles
- Support IAM trusted profiles.
15 August 2021
The following changes were made in build 8201:
- Improvements
- Internal bug fixes.
June 2021
1 June 2021
The following changes were made in build 8194:
- API task filtering
-
Bug fixes, including account API key task filtering.
- Replication support
-
Support replication basic auth credentials in auth object.
- Basic auth credentials
-
No longer display basic auth credentials (for example,
username:*****) in the output of these endpoints:_scheduler/jobs_scheduler/docs_active_tasks
April 2021
1 April 2021
The following changes were made in build 8192:
- New! Fair share replicator
- Added Fair share replicator. For more information, see Fair Share Replication Scheduler Implementation.
- Improvements
- Internal bug fixes.
March 2021
15 March 2021
The following changes were made in build 8182:
- Improvements
- Internal bug fixes.
- Caching
- Apply caching to account-local
_usersdatabases. - Error condition
- Treat 408 as a retryable error condition for replicator.
- Compressed requests
- Allow compressed (
gzipped) requests to/_sessionendpoint. /_active_tasksendpoint- Show process status in
/_active_tasksendpoint. /{DB}/_changesendpoint- Validate JSON payload on
POSTto/{DB}/_changesendpoint.
December 2020
1 December 2020
The following changes were made in build 8169:
- New! Cloudant query operator
- Introduce the query operator,
$keyMapMatchthat offers the ability to make queries on the keys of a map. - Improvements
- Internal bug fixes.
- Database reporting
- Report the database that was used for authentication for a
GET /_sessionrequest, provided it is configured.
September 2020
1 September 2020
The following changes were made in build 8162:
- Improvements
- Internal bug fixes.
DrilldownparametersDrilldownparameters for text index searches can now be specified as a list of lists, which gives you the ability to avoid having to define it redundantly in a single query. Some languages don't have this facility.couch_indexserver- The
couch_indexserver doesn't crash and log errors in the following cases: If a design document is deleted while that index is building, or when a design document is added immediately after database creation. - Invalid parameters
- IBM Cloudant now checks for and reports invalid parameters on database creation.
July 2020
1 July 2020
The following changes were made in build 8158:
- Improvements
- Internal bug fixes.
May 2020
15 May 2020
The following changes were made in build 8153:
- Improvements
- Internal bug fixes.
April 2020
1 April 2020
The following changes were made in build 8152:
- Improvements
- Internal bug fixes.
March 2020
15 March 2020
The following changes were made in build 8142:
- New! Endpoints
- New endpoints were added, so you can post multiple queries:
POST /{db}/_all_docs/queriesandPOST /{db}/_design_docs/queries. - Multiple queries
- The ability to submit multiple queries against a view by using the
POSTto/{db}/_design/{ddoc}/_view/{view}with the?queriesoption was replaced by the newqueriesendpoint. The same is true of the_all_docsand_design_docsendpoints. Specify akeysobject when youPOSTto these endpoints. disk_sizeanddata_sizefields- The
disk_sizeanddata_sizefields were retired from the database information object that is returned byGET /{db}. /{db}/_changesfeed- The
/{db}/_changesfeed immediately returns headers now, even when no changes are available. This process prevents client's from becoming blocked. - Negative and noninteger heartbeat values
- Negative and noninteger heartbeat values now return a
400 Bad Requestresponse status code. - Separate proxies
- Allow specifying separate proxies for both the source and target in a replication by using
source_proxyandtarget_proxykeys. POSTview function- The
POSTview function now supports identical parameters and behavior as specified in the/{db}/_design/{ddoc}/_view/{view},/{db}/_all_docs, and/{db}/_design_docsendpoints. You can supply query string parameters as keys in a JSON object in the body of thePOSTrequest. - Replication errors
- Replication
"info"errors are now JSON objects. Previously, they were strings. - Replication support
- A compatibility change was made to support replication with future databases that contain per-document access control fields.
- Warning message
- Add a warning to the
_findendpoint if multiple document scans were required to generate a result. _findendpoint error- Fix a bug in the
_findendpoint whereby an error would be returned if a document matched by a text index was deleted while the query was being processed.
January 2020
15 January 2020
The following changes were made in build 8126:
- Improvements
- Internal bug fixes.
- Replication error reports
- Improvements to replication error reporting - instead of a function_clause, human-readable markers are returned, for example,
bulk_docs_failed. Stack traces are no longer included. - Replication job statistics
- Replication job statistics, such as
docs_read,docs_written, anddoc_write_failuresare preserved when replication jobs restart. - Replication jobs
- Replication jobs to a target endpoint by using IAM Writer permissions no longer crash and continuously restart when they write design documents. Instead, the
doc_write_failuresstatistic is incremented for each failed design document write. This behavior is consistent with replicating by using the legacy API-key-based authentication.
November 2019
1 November 2019
The following changes were made in build 8111:
- Improvements
- Internal bug fixes.
- Replication statistics
- The
_scheduler/docsendpoint now includes more detailed replication statistics to match_active_tasksoutput. It also includes details on replications that started with_replicate. - Replication error
- Fix an instance where the replicator failed a replication but the error was recoverable.
- Empty payload
- Fix a bug introduced in recent builds where sending an empty payload to
_bulk_docswould result in a 400 response status code rather than accepting the no-op operation.
October 2019
21 October 2019
- Multiple restrictions employed for performance gains
-
IBM released exciting new capabilities for IBM Cloudant that are available now. IBM Cloudant documented the deprecation of some functionality, and also, new restrictions for other processes. A communication was released that details the exact timeline when these restrictions go into effect. If you use any of the following functions or are concerned about how to make the necessary application changes, reach out to support by email. The following functions are affected by this deprecation:
-
Remove the
offsetfield from the response body of anall_docsrequest. The IBM Cloudant team recommends that you use paging withstart_key/end_keyandlimit. -
The
_sortedfield has no functional effect because all responses are sorted automatically. -
Duration of operations has a 5-second limit. Transactions lasting more than 5 seconds fail.
-
Limitations on keys (10 KB) and values (100 KB) that are emitted from a map function are shown in the following list:
- The sum of all keys that are emitted for a document cannot exceed 100 KB.
- Emitted keys cannot exceed 10 KB.
- Values cannot exceed 100 KB.
- In rare cases, the number of key-value pairs that are emitted for a map function can affect database performance or violate IBM Cloudant rules. For example, the number of key-value pairs might lead to a transaction either exceeding 10 MB, which isn’t allowed, or exceeding 5 MB, which impacts the performance of the database. In this situation, IBM Cloudant returns an error.
-
The
stable = trueoption is no longer supported, and thestale = "ok"option is converted toupdate = false.
-
15 October 2019
The following changes were made in build 8106:
- Improvements
- Internal bug fixes.
1 October 2019
The following changes were made in build 8103:
X-Cloudant-ActionHTTP response header- New
X-Cloudant-ActionHTTP response header that returns the IBM Cloud® IAM actions that are associated with a request. - Search requests
- Previously, search requests would return a
400status code both on a bad request and on internal server errors. Now, internal server errors correctly return a500response status code.
September 2019
18 September 2019
- Replaced deprecated database information fields
-
Calls to
GET /{db}were replaced by the following fields:Database information fields Old Field New Field data_sizesizes.activedisk_sizesizes.fileother.data_sizesizes.externalCalls to
GET /{db}/_design/{ddoc}/_infowere replaced by the following fields:Design doc information fields Old Field New Field data_sizesizes.externaldisk_sizesizes.file
June 2019
1 June 2019
The following changes were made in build 8076:
- Improvements
- Internal bug fixes.
- Stability
- Stability improvements.
May 2019
15 May 2019
The following changes were made in build 8070:
- Improvements
- Internal bug fixes.
1 May 2019
The following changes were made in build 8062:
- Improvements
- Internal bug fixes.
April 2019
15 April 2019
The following changes were made in build 8058:
ibrowseHTTP client- Fixed bug in
ibrowseHTTP client that leaves dead process IDs in the connection pool, and in some cases, caused persistent IAM-based replication failures.
1 April 2019
The following changes were made in build 8052:
partitioned_indexesfield-
Accessing the database information endpoint (
/db/) for a partitioned database now includes information about the contained partitioned indexes. The new field,partitioned_indexes, contains the following information:- The current number of partitioned indexes in the database (
count). - A breakdown of those indexes by type (
indexes). - The maximum partitioned indexes allowed for this database (
limit).
- The current number of partitioned indexes in the database (
March 2019
15 March 2019
The following changes were made in build 8048:
- Improvements
- Internal bug fixes.
1 March 2019
The following changes were made in build 8038:
- Partition queries
- Allow
POSTwhen you search partition queries.
February 2019
15 February 2019
- The
staleoption -
The
staleoption is deprecated and is replaced bystableandupdate, which allow controlling the two orthogonal behaviors that are caused bystaleseparately.Stale option replacement stablevalueEquivalent by using stableandupdatefalsestable=false,update=trueokstable=true,update=falseupdate_afterstable=true,update=lazy
1 February 2019
The following changes were made in build 7681:
- Partition query
- Partition query bug fixes.
January 2019
15 January 2019
The following changes were made in build 7668:
- New! Partition query
- This build introduces a new feature, partition query.
limit- Allow
limitwhen you usePOSTfor search. - View requests
- Previously, view requests that use a
limitparameter greater than 268435456 would have the limit that is silently reduced to 268435456. Now, requests with thelimitparameter greater than 268435456 are rejected with a400 Bad Requesterror.
1 January 2019
The following changes were made in build 7631:
- Improvements
- Internal changes and bug fixes.
December 2018
1 December 2018
The following changes were made in build 7544:
- Replicator statistics
- Fixed a problem where the replicator would sometimes reset statistics during replications. The reset would affect values in the replication status information. See PR.
- IBM Cloudant Query and
_findrequest - Fixed an issue with IBM Cloudant Query. After you delete a document, if you issue a
_findrequest to a text index withupdate=false, it might return a500response. See PR. _bulk_get- You can now use
multipart/mixedandmultipart/relatedwhen you use_bulk_get. See PR. _design_docshandler- Fix a bug with total row count in the
_design_docshandler. See PR. - Replication filters
- Optimizations to the
_doc_idand_design_docsreplication filters. See issue. - Index jobs
- Fix a regression where long-running index jobs can fail.
November 2018
4 November 18
The following changes were made in build 7410:
- Improvements
- Internal changes and bug fixes.
1 November 2018
The following changes were made in build 7426:
- Improvements
- Internal bug fixes to data compression, search, and core database components.
- Audit logs
- Include CRN in audit logs.
- Replicator
- Replicator stability improvements.
qparameter- Improve validation of
qparameter on database creation. See COUCHDB-1582. _bulk_getendpoint- Fix error in
_bulk_getendpoint for the_usersdatabase. See COUCHDB-1650. - JavaScript URL rewrites
- Fix JavaScript URL rewrites hanging on
POSTorPUTrequests. See COUCHDB-1612. - IBM Cloudant Query and invalid
reducefunctions - Fix invalid
reducefunctions in IBM Cloudant Query indexes that prevent indexing. See COUCHDB-1666.
October 2018
11 October 2018
The following changes were made in build 7304:
- Improvements
- This build is identical to build 7302 except that the build is on Erlang 17.5 instead of Erlang 20.
September 2018
25 September 2018
The following changes were made in build 7302:
- Cloudant Query
- Improve Cloudant Query so that mixed clusters return correct results during upgrades.
- Downgrade function
- Add a downgrade function to support future cluster purge releases.
- Search blocklist
- Improve search blocklist.
18 September 2018
The following changes were made in build 7276:
- Improvements
- Add a filter for databases that are being opened asynchronously to prevent exceptions when
couch_serverterminates. - Concurrency error
- Fix
couch_serverconcurrency error. - Configuration option
- Add a configuration option to disable off-heap messages.
13 September 2018
- TLS 1.3 connection support
-
From today, IBM Cloudant supports TLS 1.3 connections to IBM Cloudant.
-
IBM Cloudant recommends that you use TLS 1.2 or 1.3 for all access to IBM Cloudant. (In June 2019, IBM Cloudant retired the use of older versions (TLS 1.0 and 1.1) at which point only TLS 1.2+ is supported.) Find more information on the Security page.
7 September 2018
The following changes were made in build 7205:
- Refactor Cloudant Query selectors
- Improve efficiency of Cloudant Query by adding support for predicate push-down to database shards.
- Document update errors
- Expose document update errors on concurrent document updates to client.
render_errorerrors- Fix
render_errorerrors where thereqobject that is passed to the JavaScript list function is set tonoprocAtom.
August 2018
1 August 2018
The following changes were made in build 7138:
- Erlang
- Upgrade to Erlang OTP 20.
15 August 2018
The following changes were made in build 7137:
- Validation of configuration parameters
- Improve validation of configuration parameters supplied by administrator.
- Compaction
- While compaction is running, delete compaction files when database is deleted.
- Sandboxing feature
- Improve sandboxing features.
- Authentication check
- Optimize authentication check.
- Semantics
- Change semantics of status codes for delete database.
conflicts: truesupport- Support
conflicts: truefor queries to the/{db}/_findendpoint. update_seqfield- Preserve
update_seqfield across view compaction.
July 2018
12 July 2018
The following changes were made in build 7084:
statsreducer- Refactor code for
_statsreducer. - Views
- Fix active size calculations for views.
couch_key_treealgorithm- Rewrite the
couch_key_treealgorithm to reduce its computational complexity and avoid calling stemming when unnecessary. - Allocation strategy
- Change the allocation strategy for the message queue for each important process, so it's not stored on the heap of that process.
- Internal audit facility
- Improvements to internal audit facility.
- Constant fields
- Any constant fields that are in the selector, and are part of the index. For example,
{A: {$eq: 10}}is inserted into the sort list if they aren't already included. This method increases the chance that the best index is selected for the query, for example, index =[A, B], sort =[B], and selector ={A: 1}. The sort then becomes[A, B].
Only the fields that are in front of the current sort fields in the list are added.
June 2018
29 June 2018
The following changes were made in build 7051:
- Forward compatibility clause
- Add forward compatibility clause for
_statsdisk format change. - Compatibility clause
- Add compatibility clause for attachment receiver to facilitate Erlang upgrade.
- Audit facility
- Improvements to internal audit facility.
12 June 2018
The following changes were made in build 7014:
- Query selector
- Remove the requirement to cover
_idor_revin the query selector in order to use a JSON index that explicitly contains them.
May 2018
29 May 2018
The following changes were made in build 6979:
- Audit facility
- Improve internal audit facility.
14 May 2018
The following changes were made in build 6919:
- New! Action,
DELETE - Introduce new action,
DELETE, on the/_iam_sessionendpoint, which invalidates the IAM session cookie. - Improvements
- Remove outdated dependencies.
April 2018
26 April 2018
The following changes were made in build 6909:
- Improvements
- Improve compatibility with IAM.
httpmultipart requests- Fix
badargerror in the module that parseshttpmultipart requests.
25 April 2018
The following changes were made in build 6900:
- New! Support replication
- Support replication with IAM.
- Validation
- Improve validation of password schemes.
- State field
- In
_scheduler/docs, set the value of the state field tocrashingwhen the last event in the history was a crash. _design/$DDOC/_rewriteand_design/$DDOC/_update- Disallow
_design/$DDOC/_rewriteand_design/$DDOC/_updateendpoints with IAM.
17 April 2018
The following changes were made in build 6895:
- Pluggable storage engine
- Fix a regression that is introduced with pluggable storage engine.
6 April 2018
- Replaced
queriesparameter -
The
queriesparameter for performing multiple view queries in a single request is no longer accepted as a URL parameter forGET /{db}/_design/{ddoc}/_view/{view}or a request body parameter forPOST /{db}/_design/{ddoc}/_view/{view}. The parameter was replaced with the endpointPOST /{db}/_design/{ddoc}/_view/{view}/queriesand is supplied as aqueriesrequest body parameter. You can also make multiple queries with the following new endpoints:POST /{db}/_all_docs/queriesPOST /{db}/_design_docs/queries
- Sending several queries to a view
-
Sending multiple queries to a view that uses a
POSTrequest to/$DATABASE/_design/$DDOC/_view/$VIEWNAMEis deprecated with multi-querying a MapReduce view. For more information, see the previous deprecation note about replacing thequeriesparameter.
4 April 2018
The following changes were made in build 6875:
- New! Audit facility
- Internal audit facility is added to the platform.
- IBM Cloudant Query error messages
- Improve error messages for IBM Cloudant Query.
March 2018
30 March 2018
The following changes were made in build 6870:
killcommand- Fix how the
killcommand works when you terminate an operating system process. _changesendpoint- Fix
_changesendpoint shard substitution. - Compaction resumption
- Fix compaction resumption for terminated compactions.
13 March 2018
The following changes were made in build 6761:
- New!
_dbs_infoendpoint - Introduce new
_dbs_infoendpoint to get information from a list of databases. See Get a list of all databases in the instance. - New! Pluggable storage engine
- Add a pluggable storage engine.
- Improvement
- Update MochiWeb to version 2.17.
- Attachments
- Ensure deterministic revisions for attachments. See COUCHDB-3255.
chttpdmultipart- Prevent
chttpdmultipart zombie processes. - Unconditional retries
- Avoid unconditional retries in replicator's HTTP client.
- Session support
- Prepare for session support in replicator.
February 2018
15 February 2018
The following changes were made in build 6656:
- Query parameters
- Update
_design_docsto respect the query parameters that are used by_all_docs. See Get design documents. COPYrequest- When you send a
COPYrequest to/$DATABASE/docidendpoint, IBM Cloudant now decodes the Destination header and creates a new ID without escaped values. - Replication document
- Remove headers from replication document on read.
update_seqandoffsetparameters- If the
keysparameter is specified and theupdate_seqparameter is set to true, theupdate_seqandoffsetparameters returnnullin the response. - Semantics
- Change semantics of status codes for create database.
7 February 2018
- IBM Db2 Warehouse SaaS feature is deprecated
- To find alternatives to IBM Cloudant's IBM® Db2® Warehouse as a Service feature, see the data-flow-examples repository for tutorials on extracting IBM Cloudant documents and writing the data to a IBM Db2 Warehouse SaaS table.
January 2018
10 January 2018
The following changes were made in build 6620:
- IBM Cloudant Query and empty
partial_filter_selectorfield - IBM Cloudant Query falls back to
selectoron an emptypartial_filter_selectorfield.
December 2017
28 December 2017
The following changes were made in build 6600:
- IBM Cloudant Query and
$oroperations - IBM Cloudant Query fields that are referenced within
$oroperations are considered when IBM Cloudant Query determines the usable indexes for a particular selector.
7 December 2017
The following changes were made in build 6588:
- New!
create_target_paramsparameter - A new parameter,
create_target_params, was added for you to customize the target database that is created on a new replication. You can now customize the cluster's default values for the number of shards and replicas to create. /_scheduler- A request to
/_schedulerwithout specifying subsectionsdocsorjobsnow returns aNot founderror. new_editsvalue- A new error is returned when a
new_editsvalue is invalid in the/db/_bulk_docsURL. The error is400: Bad request. eval()andFunction()constructors- For security reasons, by default, the use of
eval()andFunction()constructors is disabled in JavaScript. Prefer: return=minimalheader- Added the header
Prefer: return=minimalto return only essential headers. This header reduces the size of the request, which gives a performance improvement to nonbrowser clients. - Disabled JavaScript constructors
- If a user calls the disabled JavaScript constructors,
eval()orFunction(), an error message similar to this one is returned, Call toeval()was blocked by CSP. You can fix the problem by replacingeval()calls with the calls from the expr-eval library.
4 December 2017
- Removed support for virtual hosts
- IBM Cloudant disabled the virtual host functionality on 4 December 2017. Support for insecure HTTP connections was replaced by HTTPS only. After you turn off HTTP support, the virtual hosts feature is no longer available since use of virtual hosts precludes secure HTTPS connections. Previous users of the virtual host feature need to make alternative arrangements to present a chosen hostname to your clients from your application and use HTTPS connections only.
November 2017
7 November 2017
- Incompatibility between CouchDB version 1.6 and IBM Cloudant version 2.0.0
- An incompatibility exists between the most recent version of IBM Cloudant and CouchDB 1.6-based codebase. In the older version of IBM Cloudant, if you add a query parameter ("reduce=false") to the request body, the parameter in the request body is ignored. However, the parameter in the request URL is respected. In recent versions of IBM Cloudant, the query parameter ("reduce=false") in the request body isn't ignored.
October 2017
17 October 2017
- Query (
_findendpoint) improved - IBM Cloudant Query now uses a new method to select an index. Learn more about IBM Cloudant Query index selection.
- Index validation
- The logic for determining whether a specific index is valid for a query that changed, addressing a bug that might lead to incorrect results.
- Text indexes
- Queries that use text indexes no longer fail when
$exists:falseis used. - Partial indexes
- Partial indexes are now supported for both JSON and text indexes. For more information, see Creating a partial index to learn about the
partial_filter_selectorparameter. - Execution statistics
- Execution statistics about a query can now be generated. These statistics are enabled by using the
execution_stats=trueparameter. For more information, see querying an index by using selector syntax to learn more aboutexecution_stats=trueparameter. - Pagination
- Pagination is supported by using the bookmark field. Bookmarks are enabled for all index types.
use_indexfield invalid_findnow falls back to any valid index if the value specified in theuse_indexfield is invalid for the current query. Whenfindfalls back, thewarningfield is populated in the query response.
9 October 2017
- Error handling
- If you rely on 500 replies for your application, you might have issues. To fix the problem, update your application to rely on 400 responses.
- If you don't take care of reduce overflow errors as part of a row in the response body, issues occur. To fix this problem, change the application to handle the errors from view requests.
August 2017
17 August 2017
The following changes were made in build 6365:
- New! X-Frame-Options
-
Add the
X-Frame-Optionsheader settings. TheX-Frame-Optionssetting is a response header that controls whether an HTTP response can be embedded in a<frame>,<iframe>, or<object>. This security feature helps prevent click jacking.You can configure this option based on your CORS settings. If CORS is enabled,
X-Frame-Optionsare automatically enabled and send the response header,X-Frame-Options: DENY, by default. If a request HOST header matches the URL listed in the origins section of CORS, anX-Frame-Options: ALLOW-FROM URLresponse header is returned.This change might impact customers who are accessing the database directly from the browser. If you see the error message, "X-Frame-Options: DENY", and it's breaking your service, you must enable CORS by modifying the CORS configuration. After you enable CORS, add the value of the HOST header that you send in the request to the list of allowed
origins. - New! Replication scheduler
-
Add the replication scheduler. Learn more about replication scheduler.
_revs-diffendpoint-
POSTrequests to the_revs_diffendpoint require either the_readeror_replicatorrole.
July 2017
24 July 2017
- Retire Shared plan
- IBM Cloudant Shared Plan accounts can no longer be created from the IBM Cloudant product page.
4 July 2017
The following changes were made in build 6276:
- Error message
-
An error message changed that occurs when you try to put a document attachment with a nonexistent revision. Now, the error is a 409 error with the following information:
{"error":"not_found","reason":"missing_rev"}
June 2017
26 June 2017
The following changes were made in build 6233:
- IBM Cloudant Query and indexes
- Fixes an IBM Cloudant Query issue where indexes that excluded potentially matching documents were selected by the query planner.
14 June 2017
- Revised error message
-
The error message that occurs when you try to put a document attachment with a nonexistent revision. This error is changed to a 409 error with the following information:
{"error":"not_found","reason":"missing_rev"}
May 2017
11 May 2017
The following changes were made in build 6069:
- New!
$allmatchoperator support - Added support for the
$allmatchoperator. - Replication
- Previously, a replication job that failed for some reason, which resulted in an update to the replication document, was followed by a fresh attempt to start a new replication. Under some circumstances, this behavior might continue indefinitely: many duplicates of the same error message. A fix was introduced so that the replication document is not updated unless the reason for the error changes.
February 2017
13 February 2017
The following changes were made in build 5834:
- Document
idlength - The maximum length of a document
idis now 7168 characters (7k).
November 2016
25 November 2016
The following changes were made in build 5728:
- Malformed user documents
- IBM Cloudant is more tolerant of malformed user documents that are stored within the
_usersdatabase. - Structure for user documents
- User documents must be structured and populated to comply with Apache CouchDB requirements.
October 2016
11 October 2016
The following changes were made in build 5638:
- New! Parameters
- Introduces new
stableandupdatequery parameters for views. - Replicator retries
- Replicator no longer retries forever if it cannot write checkpoints to the source database.
June 2016
14 June 2016
The following changes were made in build 5421:
- View-based filters
- Changes feeds support view-based filters.
_docs_idsfilter- Changes feeds support the
_doc_idsfilter. POSTrequestsPOSTrequests are supported for_changes.attachments=trueparameter support- Both
_all_docsand_changessupport theattachments=trueparameter. - CouchDB 1.6
_usersdatabase support - Support for the CouchDB 1.6
_usersdatabase features, including server-side hashing of passwords when documents are created in the_usersdatabase. /_bulk_getendpoint/_bulk_getendpoint to reduce the number of requests that are used in replication to mobile clients.- Design document metadata
- Design document metadata contains an
update pendingfield. - Eliminate error
- IBM Cloudant Query no longer returns an error if no valid index exists.
February 2016
4 February 2016
dbcopy- The
dbcopyfeature can cause problems under some circumstances. Information about the feature was removed from the documentation. Use ofdbcopyis discouraged.
November 2014
6 November 2014
generate_api_keyendpoint is deprecated- An earlier method of generating API keys by issuing the
POSTcommand to thehttps://cloudant.com/api/generate_api_keyendpoint is deprecated.
July 2014
1 July 2014
- New! Introducing IBM Cloudant Classic
- IBM® Cloudant® for IBM Cloud® is a document-oriented database as a service (DBaaS). It stores data as documents in JSON format. It is built with scalability, high availability, and durability in mind.