How to read max_array_seckey_size setting (Version: 4.5.1-2844 Community Edition (build-2844))

The endpoint referenced here: https://developer.couchbase.com/documentation/server/current/rest-api/get-settings-indexes.html doesn’t give us the granularity we need.
It is:

GET http://<host>:8091/settings/indexes

I also know how to set the value in bytes:

curl -X POST -u admin:couchbase http://localhost:9102/settings --data '{"indexer.settings.max_array_seckey_size": X}'

We are trying to reproduce this issue which we believe happened in our deployment https://issues.couchbase.com/browse/MB-22409?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel.

So questions:

  1. How to read this value?
  2. Bonus: What is this value and how is it used?
  1. curl -X GET -u admin:couchbase http://localhost:9102/settings

  2. If the value exceeds setting the indexer will not index that document and the entry is logged in indexer.log

    The formula to calculate max_array_seckey_size is as follows:

    If the index definition is - create index idx on bucket( a, distinct (array (x.y) for x in b end) , c )
    then max_array_seckey_size = ( size ( a ) + size ( y ) + size ( c ) ) * (num of elements in b array)

The server sends back an empty reply for GET http://localhost:9102/settings

even though it replies OK for POSTing to that endpoint.

Have you verified that that endpoint works 4.5.1-2844 Community version?

What might be another approach for finding this setting? Also, your second comment seems to imply that this setting is different for every index. Is that the case? It seems odd, given that we set it by POSTing to a general-purpose settings endpoint that is not index-specific.

The index settings rest endpoint is same across all releases.

The setting is not index specific. The value needs to sufficient so that it can accommodate the largest index key as the buffer is reused across all indexes.