I've put together a couple of lists (pretty sure I'll need to be adding more) ..
Here's the first ..
ERROR/REASON |
DESCRIPTION |
RESPONSE STATUS |
RESPONSE DESCRIPTION |
ACTION |
success |
query was processed successfully |
200 |
Ok |
great |
query request rejected |
high memory consumption, throttler steps in |
429 |
Too many requests |
retry-able |
authentication failure |
incorrect auth credentials or no permissions |
403 |
Forbidden |
no-retry |
malformed query request |
unrecognized/bad query |
400 |
Bad request |
no-retry |
page not found |
endpoint is invalid |
404 |
Not found |
no-retry |
pre-condition failed |
pre-condition not met - consistency error |
412 |
Precondition failed |
retry-able; conditional - for as long as sequence number(s) in consistency vector is expected |
.* |
an error that the server can potentially recover from |
500 |
Internal server error |
retry-able |
For the above failures, the "status" in the search response would just say "fail".
Partial errors
Now it is possible for "status" to not say fail when some of the index partitions have reported failures. This is when the user will see a partial result set for their query. Here's a sample response ..
{
|
"status": {
|
"total": 6,
|
"failed": 2,
|
"successful": 4,
|
"errors": {
|
"pindex_name_1": "xyz",
|
"pindex_name_2": "xyz"
|
}
|
},
|
"request": {
|
"query": {
|
...
|
},
|
"size": 10,
|
"from": 0,
|
"facets": {},
|
"sort": [
|
"-_score"
|
]
|
},
|
"hits": [...],
|
"total_hits": ...,
|
"max_score": ...,
|
"took": ...,
|
"facets": {}
|
}
|
If one or more of the index partitions failed to cater to the request, the user can see partial results, in which case the response status is 200 and the errors object in the response will be of non-zero length.
Partial ERROR |
DESCRIPTION |
ACTION |
context deadline exceeded |
request wasn’t processed/responded-to by the partition in the requested time period |
retry-able |
no planPIndexes for indexName |
FTS node in the process of a rebalance, partitions are being moved |
retry-able |
bleve: pindex_consistency mismatched partition |
RYOW failure - received data from a vbucket with a different UUID while waiting on a sequence number - possibly due to KV rebalance/failover |
no-retry |
pindex not available |
one or more primary index partitions (that do not have replicas) have been failed over (need to rebalance to set them up again) |
retry-able; conditional - upon rebalance after failover |
cannot perform operation on empty alias |
one or more index partitions are in the process of being setup during a rebalance |
retry-able |
I've put together a couple of lists (pretty sure I'll need to be adding more) ..
Here's the first ..
For the above failures, the "status" in the search response would just say "fail".
Partial errors
Now it is possible for "status" to not say fail when some of the index partitions have reported failures. This is when the user will see a partial result set for their query. Here's a sample response ..
{
}
},
...
},
]
},
}
If one or more of the index partitions failed to cater to the request, the user can see partial results, in which case the response status is 200 and the errors object in the response will be of non-zero length.