weaviate/weaviate · error
failed to parse summarization response (status %d): %w
Error message
failed to parse summarization response (status %d): %w
What it means
Returned by the sum-transformers client when the JSON body from the summarization inference container cannot be unmarshaled into the expected sumResponse shape. Like the transformers reranker, parsing occurs before the status check, so non-JSON error bodies (HTML pages, crash tracebacks, empty bodies) at any status produce this message with the status embedded.
Source
Thrown at modules/sum-transformers/client/client.go:85
bytes.NewReader(body))
if err != nil {
return nil, errors.Wrap(err, "create POST request")
}
res, err := c.httpClient.Do(req)
if err != nil {
return nil, errors.Wrap(err, "send POST request")
}
defer res.Body.Close()
bodyBytes, err := io.ReadAll(res.Body)
if err != nil {
return nil, errors.Wrap(err, "read response body")
}
var resBody sumResponse
if err := json.Unmarshal(bodyBytes, &resBody); err != nil {
return nil, fmt.Errorf("failed to parse summarization response (status %d): %w", res.StatusCode, err)
}
if res.StatusCode > 399 {
return nil, errors.Errorf("fail with status %d: %s", res.StatusCode, resBody.Error)
}
out := make([]ent.SummaryResult, len(resBody.Summary))
for i, elem := range resBody.Summary {
out[i].Result = elem.Result
out[i].Property = property
}
// format resBody to nerResult
return out, nil
}
func (c *client) url(path string) string {View on GitHub (pinned to 75aa4b6d11)
Solutions
- Check the summarization inference container logs for tracebacks or crash messages
- Curl the container's summarization endpoint directly to inspect the raw response body
- Verify SUM_INFERENCE_API points to the correct host/port and the container is healthy
- Upgrade the inference container image to a version compatible with your Weaviate release
Defensive patterns
Strategy: try-catch
Validate before calling
// verify the summarization container is reachable before querying
resp, err := http.Get(sumInferrerURL + "/meta")
if err != nil || resp.StatusCode >= 400 {
return fmt.Errorf("sum-transformers inference container not ready: %v", err)
} Type guard
func isSummaryParseFailure(err error) bool {
return err != nil && strings.Contains(err.Error(), "failed to parse summarization response")
} Try / catch
out, err := summarizer.GetSummary(ctx, text)
if err != nil {
if strings.Contains(err.Error(), "failed to parse summarization response") {
// inspect container logs / raw body, don't hot-retry a schema mismatch
}
return fmt.Errorf("summarization failed: %w", err)
} Prevention
- Add readiness probes against the summarization container
- Keep the sum-transformers inference image version in sync with Weaviate
- Avoid proxies that replace JSON errors with HTML pages
- Set resource limits so the container isn't OOM-killed under load
When it happens
Trigger: The summarization inference container returns a body that isn't valid sumResponse JSON — e.g. a gateway HTML error page, an empty body from a crashed worker, a traceback from a Python error, or a schema mismatch in the summary response.
Common situations: The summarization inference container is overloaded, OOM-killed, or not fully started; wrong image version incompatible with Weaviate; a proxy returning HTML 502/504 pages; misconfigured SUM_INFERENCE_API pointing at a wrong service.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
Related errors
- failed to parse reranker response (status %d): %w
- no params provided
- failed to parse spellcheck response (status %d): %w
- no properties provided
- failed to parse reranker error response (status %d): %w
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/496ac478c84d06b1.
Report an issue: GitHub.