8000 Malformed request body failed to decode: Unexpected end of input · Issue #3554 · zio/zio-http · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Malformed request body failed to decode: Unexpected end of input #3554
Open
@roman-timoshevskii

Description

@roman-timoshevskii

Describe the bug
Method that receives and parses JSON fails from time to time with an error zio.http.codec.HttpCodecError$MalformedBody: Malformed request body failed to decode: Unexpected end of input
JSON content is valid and static (checked in the browser developer tools) but sometimes the page loads successfully, sometimes fails with the error message above.

We're using zio-http 3.3.3 Endpoint API and zio-json 0.7.42 for requesting a server for data.
Simplified model is TreeNode(data: Data, children: List[TreeNode])
Response of the request is around 17k bytes.

To Reproduce
Steps to reproduce the behaviour:

  1. Refresh the page that contains this method multiple times

Expected behaviour
Page loads successfully, no error messages appear in the console.

Desktop (please complete the following information):

  • OS: Windows 11 Pro 24H2
  • Browser [Chrome 137.0.7151.104, Firefox 139.0.4]

Additional context
Full error message:

timestamp=2025-06-16T08:59:57.725Z level=ERROR thread=#zio-fiber-2481762 message="Error occurred during loadGroups (Invocation(Endpoint(GET /api/groups,Combine(Method(<function1>,0),Path(/api/groups,0),zio.http.codec.Combiner$$anon$1@80),Annotated(Combine(Content(Choices(ListMap(MediaType(application,json,true,false,List(json, map),Map(),Map()) -> BinaryCodecWithSchema(<function1>,Sequence(CaseClass7(Nominal(Chunk(datasapience,licman),Chunk(),GroupDto), Field(id,$Lazy$),Field(name,$Lazy$),Field(description,$Lazy$),Field(groupId,$Lazy$),Field(subgroups,$Lazy$),Field(modules,$Lazy$),Field(metricTemplates,$Lazy$)), List)), MediaType(application,protobuf,false,true,List(),Map(),Map()) -> BinaryCodecWithSchema(<function1>,Sequence(CaseClass7(Nominal(Chunk(datasapience,licman),Chunk(),GroupDto), Field(id,$Lazy$),Field(name,$Lazy$),Field(description,$Lazy$),Field(groupId,$Lazy$),Field(subgroups,$Lazy$),Field(modules,$Lazy$),Field(metricTemplates,$Lazy$)), List)), MediaType(text,plain,true,false,List(txt, text, conf, def, list, log, in, ini),Map(),Map()) -> BinaryCodecWithSchema(<function1>,Sequence(CaseClass7(Nominal(Chunk(datasapience,licman),Chunk(),GroupDto), Field(id,$Lazy$),Field(name,$Lazy$),Field(description,$Lazy$),Field(groupId,$Lazy$),Field(subgroups,$Lazy$),Field(modules,$Lazy$),Field(metricTemplates,$Lazy$)), List)), MediaType(application,octet-stream,false,true,List(bin, dms, lrf, mar, so, dist, distz, pkg, bpk, dump, elc, deploy, exe, dll, deb, dmg, iso, img, msi, msp, msm, buffer),Map(),Map()) -> BinaryCodecWithSchema(<function1>,Sequence(CaseClass7(Nominal(Chunk(datasapience,licman),Chunk(),GroupDto), Field(id,$Lazy$),Field(name,$Lazy$),Field(description,$Lazy$),Field(groupId,$Lazy$),Field(subgroups,$Lazy$),Field(modules,$Lazy$),Field(metricTemplates,$Lazy$)), List)))),None,0),Status(<function1>,0),zio.http.codec.CombinerLowPriority1$$anon$2@81),Documented(Paragraph(Text(Found groups with its modules)))),TransformOrFail(TransformOrFail(Fallback(TransformOrFail(Fallback(Combine(Content(Choices(ListMap(MediaType(application,json,true,false,List(json, map),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthenticated), )), MediaType(application,protobuf,false,true,List(),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthenticated), )), MediaType(text,plain,true,false,List(txt, text, conf, def, list, log, in, ini),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthenticated), )), MediaType(application,octet-stream,false,true,List(bin, dms, lrf, mar, so, dist, distz, pkg, bpk, dump, elc, deploy, exe, dll, deb, dmg, iso, img, msi, msp, msm, buffer),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthenticated), )))),Some(error-response),0),Status(<function1>,0),zio.http.codec.CombinerLowPriority1$$anon$2@82),Combine(Content(Choices(ListMap(MediaType(application,json,true,false,List(json, map),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthorized), )), MediaType(application,protobuf,false,true,List(),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthorized), )), MediaType(text,plain,true,false,List(txt, text, conf, def, list, log, in, ini),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthorized), )), MediaType(application,octet-stream,false,true,List(bin, dms, lrf, mar, so, dist, distz, pkg, bpk, dump, elc, deploy, exe, dll, deb, dmg, iso, img, msi, msp, msm, buffer),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass0(Nominal(Chunk(datasapience,licman),Chunk(),NotAuthorized), )))),Some(error-response),0),Status(<function1>,0),zio.http.codec.CombinerLowPriority1$$anon$2@83),zio.http.codec.AlternatorLowPriority3$$anon$4@84,IsHttpCodecError),<function1>,<function1>),Combine(Content(Choices(ListMap(MediaType(application,json,true,false,List(json, map),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass1(Field(msg,$Lazy$))), MediaType(application,protobuf,false,true,List(),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass1(Field(msg,$Lazy$))), MediaType(text,plain,true,false,List(txt, text, conf, def, list, log, in, ini),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass1(Field(msg,$Lazy$))), MediaType(application,octet-stream,false,true,List(bin, dms, lrf, mar, so, dist, distz, pkg, bpk, dump, elc, deploy, exe, dll, deb, dmg, iso, img, msi, msp, msm, buffer),Map(),Map()) -> BinaryCodecWithSchema(<function1>,CaseClass1(Field(msg,$Lazy$))))),Some(error-response),0),Status(<function1>,0),zio.http.codec.CombinerLowPriority1$$anon$2@85),zio.http.codec.AlternatorLowPriority3$$anon$4@86,IsHttpCodecError),<function1>,<function1>),<function1>,<function1>),Combine(Content(Choices(ListMap(MediaType(text,html,true,false,List(html, htm, shtml),Map(),Map()) -> BinaryCodecWithSchema(<function1>,Transform(Transform(Primitive(string,Chunk()), SourceLocation(/home/runner/work/zio-http/zio-http/zio-http/shared/src/main/scala/zio/http/template/Dom.scala,89,56)), SourceLocation(/home/runner/work/zio-http/zio-http/zio-http/shared/src/main/scala/zio/http/codec/HttpContentCodec.scala,263,5))), MediaType(application,json,true,false,List(json, map),Map(),Map()) -> BinaryCodecWithSchema(<function1>,Transform(CaseClass2(Nominal(Chunk(zio,http,codec),Chunk(HttpContentCodec),DefaultCodecError), Field(name,$Lazy$),Field(message,$Lazy$)), SourceLocation(/home/runner/work/zio-http/zio-http/zio-http/shared/src/main/scala/zio/http/codec/HttpContentCodec.scala,272,5))))),None,0),Status(<function1>,0),zio.http.codec.CombinerLowPriority1$$anon$2@87),Paragraph(Text(Retrieves all available groups with its modules)),Bearer),undefined))" cause="zio.http.codec.HttpCodecError$MalformedBody: Malformed request body failed to decode: Unexpected end of input
" location=datasapience.licman.SecuredServer.loadGroups file=SecuredServer.scala line=35 RuntimePlatformSpecific.scala:59:44
    BY RuntimePlatformSpecific.scala:59
    BY ZLogger.scala:76
    t3E FiberRuntime.scala:794
    tN$/< ZIO.scala:4209
    pa app.d46bbcd7.js:1
    t FiberRuntime.scala:1084
    t FiberRuntime.scala:1067
    t3w FiberRuntime.scala:412
    e FiberRuntime.scala:487
    OB FiberRuntime.scala:137
    UY MacrotaskExecutor.scala:32
    ca WrappedDictionary.scala:192
    t MacrotaskExecutor.scala:74
    tAP MacrotaskExecutor.scala:118
    tAF MacrotaskExecutor.scala:123
    p app.d46bbcd7.js:1
    tlY Any.scala:146

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0