{"record":{"id":"62e36b236292b520","repo":"XTLS/Xray-core","slug":"failed-to-write-a-packet","errorCode":null,"errorMessage":"failed to write a packet","messagePattern":"failed to write a packet","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"proxy/vless/encoding/addons.go","lineNumber":154,"sourceCode":"}\n\nfunc (w *LengthPacketWriter) WriteMultiBuffer(mb buf.MultiBuffer) error {\n\tlength := mb.Len() // none of mb is nil\n\t// fmt.Println(\"Write\", length)\n\tif length == 0 {\n\t\treturn nil\n\t}\n\tdefer func() {\n\t\tw.cache = w.cache[:0]\n\t}()\n\tw.cache = append(w.cache, byte(length>>8), byte(length))\n\tfor i, b := range mb {\n\t\tw.cache = append(w.cache, b.Bytes()...)\n\t\tb.Release()\n\t\tmb[i] = nil\n\t}\n\tif _, err := w.Write(w.cache); err != nil {\n\t\treturn errors.New(\"failed to write a packet\").Base(err)\n\t}\n\treturn nil\n}\n\nfunc NewLengthPacketReader(reader io.Reader) *LengthPacketReader {\n\treturn &LengthPacketReader{\n\t\tReader: reader,\n\t\tcache:  make([]byte, 2),\n\t}\n}\n\ntype LengthPacketReader struct {\n\tio.Reader\n\tcache []byte\n}\n\nfunc (r *LengthPacketReader) ReadMultiBuffer() (buf.MultiBuffer, error) {\n\tif _, err := io.ReadFull(r.Reader, r.cache); err != nil { // maybe EOF","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/XTLS/Xray-core/blob/7d214f8b094f75322fa3990f8aadad1c912f24f5/proxy/vless/encoding/addons.go#L136-L172","documentation":"Error \"failed to write a packet\" thrown in XTLS/Xray-core.","triggerScenarios":"Thrown at proxy/vless/encoding/addons.go:154 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d214f8b094f75322fa3990f8aadad1c912f24f5","analyzedAt":"2026-08-15T14:26:24.325Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}