temporalio/temporal · error

%s: %w

Error message

%s: %w

What it means

Error "%s: %w" thrown in temporalio/temporal.

Source

Thrown at common/persistence/visibility/store/elasticsearch/visibility_store.go:1337

	var elasticErr *elastic.Error
	switch {
	case errors.As(err, &elasticErr):
		// Logging the full error message, useful for debugging.
		logger.Error(message, tag.ESResponseStatus(elasticErr.Status), tag.Error(err))
		switch elasticErr.Status {
		case http.StatusBadRequest:
			// Returning InvalidArgument error will prevent retry on a caller side.
			return serviceerror.NewInvalidArgument(errMessage)
		case http.StatusTooManyRequests:
			return &serviceerror.ResourceExhausted{
				Cause:   enumspb.RESOURCE_EXHAUSTED_CAUSE_SYSTEM_OVERLOADED,
				Scope:   enumspb.RESOURCE_EXHAUSTED_SCOPE_SYSTEM,
				Message: errMessage,
			}
		}
		return serviceerror.NewUnavailable(errMessage)
	case errors.Is(err, context.Canceled), errors.Is(err, context.DeadlineExceeded):
		return fmt.Errorf("%s: %w", message, err)
	}

	return serviceerror.NewUnavailable(errMessage)
}

func shortErrorMessage(err error) string {
	if elasticErr, ok := errors.AsType[*elastic.Error](err); ok {
		msg := fmt.Sprintf(
			"VisibilityStore: Error %d (%s)",
			elasticErr.Status,
			http.StatusText(elasticErr.Status),
		)
		if elasticErr.Status == http.StatusBadRequest && elasticErr.Details != nil &&
			elasticErr.Details.Reason != "" {
			msg += fmt.Sprintf(": %s [type=%s]", elasticErr.Details.Reason, elasticErr.Details.Type)
		}
		return msg
	}

View on GitHub (pinned to bde624efd1)

When it happens

Trigger: Thrown at common/persistence/visibility/store/elasticsearch/visibility_store.go:1337 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01). Data as JSON: /api/errors/1d62824d221e64d9. Report an issue: GitHub.