in internal/beater/api/intake/handler.go [144:180]
func processStreamError(err error) (request.ResultID, jsonError) {
errID := request.IDResponseErrorsInternal
var invalidInput *elasticapm.InvalidInputError
if errors.As(err, &invalidInput) {
if invalidInput.TooLarge {
errID = request.IDResponseErrorsRequestTooLarge
} else {
errID = request.IDResponseErrorsValidate
}
return errID, jsonError{
Message: invalidInput.Message,
Document: invalidInput.Document,
}
}
if errors.As(err, &compressedRequestReaderError{}) {
errID = request.IDResponseErrorsValidate
} else {
switch {
case errors.Is(err, publish.ErrChannelClosed):
errID = request.IDResponseErrorsShuttingDown
err = errServerShuttingDown
case errors.Is(err, publish.ErrFull):
errID = request.IDResponseErrorsFullQueue
case errors.Is(err, errMethodNotAllowed):
errID = request.IDResponseErrorsMethodNotAllowed
case errors.Is(err, errInvalidContentType):
errID = request.IDResponseErrorsValidate
case errors.Is(err, ratelimit.ErrRateLimitExceeded):
errID = request.IDResponseErrorsRateLimit
case errors.Is(err, auth.ErrUnauthorized):
errID = request.IDResponseErrorsForbidden
}
}
return errID, jsonError{Message: err.Error()}
}