{"record":{"id":"9911567336317ede","repo":"weaviate/weaviate","slug":"read-meta-response-body-991156","errorCode":null,"errorMessage":"read meta response body","messagePattern":"read meta response body","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"modules/sum-transformers/client/sum_meta.go","lineNumber":37,"sourceCode":"\n\t\"github.com/pkg/errors\"\n)\n\nfunc (c *client) MetaInfo() (map[string]interface{}, error) {\n\treq, err := http.NewRequestWithContext(context.Background(), \"GET\", c.url(\"/meta\"), nil)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"create GET meta request\")\n\t}\n\n\tres, err := c.httpClient.Do(req)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"send GET meta request\")\n\t}\n\tdefer res.Body.Close()\n\n\tbodyBytes, err := io.ReadAll(res.Body)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"read meta response body\")\n\t}\n\n\tvar resBody map[string]interface{}\n\tif err := json.Unmarshal(bodyBytes, &resBody); err != nil {\n\t\treturn nil, errors.Wrap(err, \"unmarshal meta response body\")\n\t}\n\treturn resBody, nil\n}\n","sourceCodeStart":19,"sourceCodeEnd":46,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/modules/sum-transformers/client/sum_meta.go#L19-L46","documentation":"This wraps io.ReadAll failures when consuming the /meta response body from the inference service. The HTTP exchange succeeded but the response stream broke mid-read — typically the remote side closed the connection abruptly or a proxy terminated it. The body is required because meta data is parsed as JSON from it.","triggerScenarios":"Inference container resets the connection while responding to /meta; intermediary (ingress, sidecar proxy) times out and cuts the body; extremely large/failed responses dropped.","commonSituations":"Unstable networks between Weaviate and the inference service; HTTP/1.0-style servers closing without content-length; ingress proxies with short idle timeouts.","solutions":["Check inference container logs for panics or restarts during the request","Bypass proxies and test /meta directly from the Weaviate container","Retrain/redeploy the inference service if it is crash-looping","Increase proxy/ingress timeouts between the two services"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"meta, err := mod.MetaInfo()\nif err != nil {\n    if strings.Contains(err.Error(), \"read meta response body\") {\n        // broken response stream: retry the request\n        return retryWithBackoff(metaCall, 3)\n    }\n    return err\n}","preventionTips":["Keep proxies/ingress between Weaviate and inference with adequate timeouts","Watch inference container logs for mid-request crashes","Retry idempotent GET /meta calls on IO errors"],"tags":["network","http","io","response-body"],"backgroundTag":"connection-reset","analyzedSha":"75aa4b6d11f8818305aafd4440b4e32794f7ca04","analyzedAt":"2026-09-04T14:58:20.392Z","contentChangedAt":"2026-09-04T14:58:20.392Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}