Comments (5)
@martingrzzler thanks for the report.
It is possible for you to test this with the main branch.
I did some changes to the error handling and it should now cover more cases. See error.go.
If this does not help, then please provide the 429 reponse body you get so we can adjust or add some error struct.
from opensearch-go.
If I'm not mistaken the 429 Error will be mapped to ErrNonJSONError
. I've tried the following test:
{
Name: "Too many requests",
Resp: &opensearch.Response{
StatusCode: http.StatusTooManyRequests,
Body: io.NopCloser(strings.NewReader("429 Too Many Requests /testindex/_bulk")),
},
WantedErrors: []error{opensearch.ErrNonJSONError},
},
Perhaps a ErrTooManyRequests should be added to the sentinels?
ErrUnauthorized = errors.New(http.StatusText(http.StatusUnauthorized))
ErrTooManyRequests = errors.New(http.StatusText(http.TooManyRequests))
from opensearch-go.
@martingrzzler Yes, it should. Want to contribute a test + fix?
from opensearch-go.
Adding this for now is okay but maybe instead of doing:
if !json.Valid(body) {
if resp.StatusCode == http.StatusUnauthorized {
return ErrUnauthorized
}
return ErrNonJSONError
}
We can do:
if !json.Valid(body) {
return fmt.Errorf("%w, %s",ErrNonJSONError, body )
}
Or even omit the ErrNonJSONError from the error. I am not sure how good this will scale if we have some more error codes that have a non json response on error.
from opensearch-go.
@Jakob3xD I've went with the approach you suggested without the ErrNonJSONError
.
from opensearch-go.
Related Issues (20)
- [BUG] Add missing global io usage field for nodes stats
- [FEATURE] Use pooled gzip writer for request body gzip compression
- [BUG] not reporting when failed index HOT 5
- [FEATURE] ML client for pipeline setup and neural search HOT 2
- [BUG] Request context cancellation is ignored when `retryBackoff` is configured
- [BUG] Error http: ContentLength=401 with Body length 0 HOT 9
- [FEATURE] Exploring similar functionality in Go as Python classes {Object, Nested, Text, Keyword}. HOT 3
- Cleanup unused branches HOT 1
- [BUG]Unable to install because of checksum error HOT 3
- ISM Plugin `Conditions` struct is invalid
- [BUG] MappingFieldResp struct is not parsed correctly. HOT 2
- [BUG] Tests are flaky HOT 1
- Add MatchedQueries field to opensearchapi.SearchHit HOT 3
- [BUG] Index name is added two times to a query when using SearchRequest HOT 1
- [BUG] opensearchapi.Client.Document.Delete bugged error handling (v4) HOT 13
- [FEATURE] Make all response structs their own type
- [FEATURE] Support `search_pipeline` query parameter for search API requests HOT 1
- [BUG] ISM Allocation action does not match Opensearch server expectation HOT 1
- [FEATURE] Functionality to create aggregation queries when moving from olivere to opensearch-go
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opensearch-go.