In [1]: from corehq.apps.es import UserES
In [2]: from corehq.apps.es import filters
In [3]: UserES().mobile_users().nested(...: 'user_domain_memberships',...: filters.term('user_domain_memberships.is_active', False),...: ).count()
RequestError Traceback (most recent call last)Cell In[3], line 41 UserES().mobile_users().nested(2 'user_domain_memberships',3 filters.term('user_domain_memberships.is_active', False),----> 4 ).count()
File ~/www/monolith/releases/2025-09-01_20.31/corehq/apps/es/es_query.py:472, in ESQuery.count(self)471 def count(self):--> 472 return self.adapter.count(self.raw_query)
File ~/www/monolith/releases/2025-09-01_20.31/corehq/apps/es/client.py:610, in ElasticDocumentAdapter.count(self, query)604 """Return the number of documents matched by the query605606 :param query: dict query body607 :returns: int608 """609 query = self._prepare_count_query(query)--> 610 return self._es.count(self.index_name, self.type, query).get("count")
File ~/www/monolith/releases/2025-09-01_20.31/.venv/lib/python3.13/site-packages/elasticsearch6/client/utils.py:101, in query_params.._wrapper.._wrapped(*args, **kwargs)99 if p in kwargs:100 params[p] = kwargs.pop(p)--> 101 return func(*args, params=params, **kwargs)
File ~/www/monolith/releases/2025-09-01_20.31/.venv/lib/python3.13/site-packages/elasticsearch6/client/init.py:1518, in Elasticsearch.count(self, index, doc_type, body, params)1515 if doc_type and not index:1516 index = "_all"-> 1518 return self.transport.perform_request(1519 "GET", _make_path(index, doc_type, "_count"), params=params, body=body1520 )
File ~/www/monolith/releases/2025-09-01_20.31/.venv/lib/python3.13/site-packages/elasticsearch6/transport.py:402, in Transport.perform_request(self, method, url, headers, params, body)400 delay = 2 ** attempt - 1401 time.sleep(delay)--> 402 status, headers_response, data = connection.perform_request(403 method,404 url,405 params,406 body,407 headers=headers,408 ignore=ignore,409 timeout=timeout,410 )412 except TransportError as e:413 if method == "HEAD" and e.status_code == 404:
File ~/www/monolith/releases/2025-09-01_20.31/.venv/lib/python3.13/site-packages/elasticsearch6/connection/http_urllib3.py:252, in Urllib3HttpConnection.perform_request(self, method, url, params, body, timeout, ignore, headers)248 if not (200 <= response.status < 300) and response.status not in ignore:249 self.log_request_fail(250 method, full_url, url, orig_body, duration, response.status, raw_data251 )--> 252 self._raise_error(response.status, raw_data)254 self.log_request_success(255 method, full_url, url, orig_body, response.status, raw_data, duration256 )258 return response.status, response.getheaders(), raw_data
File ~/www/monolith/releases/2025-09-01_20.31/.venv/lib/python3.13/site-packages/elasticsearch6/connection/base.py:253, in Connection._raise_error(self, status_code, raw_data)250 except (ValueError, TypeError) as err:251 logger.warning("Undecodable raw error response from server: %s", err)--> 253 raise HTTP_EXCEPTIONS.get(status_code, TransportError)(254 status_code, error_message, additional_info255 )
RequestError(400, 'search_phase_execution_exception', 'failed to create query: {
...
"nested" : {
"query" : {
"bool" : {
"filter" : \[
{
"term" : {
"user_domain_memberships.is_active" : {
"value" : false,
"boost" : 1.0
}
}
}
\],
...
"path" : "user_domain_memberships",
"ignore_unmapped" : false,
"score_mode" : "avg",
"boost" : 1.0
}