Uploading file failed: 400: Unable to parse form from content

0
We have an problem upload an file (document or image) for 1 specific parent entity. When we upload the same document or image to another parent entity it works like a charm.   The image or document are relative small and I am using the same user for the same action. Therefor i can exclude an security issue.   The message we are getting is as follows: Uploading file failed: 400: Unable to parse form content [User 'richard...xxx' with session id '3b955688-XXXX-XXXX-XXXX-XXXXXXXXf665' and roles 'SysAdmin'] Caused by: java.lang.IllegalStateException: Form is larger than max length 200000   We can reproduce it over multilple local databases so it seems to be related to this entity. Anyone ever encounterd this problem in the past? Full stack org.eclipse.jetty.http.BadMessageException: 400: Unable to parse form content     at org.eclipse.jetty.server.Request.getParameters(Request.java:471)     at org.eclipse.jetty.server.Request.getParameter(Request.java:1052)     at com.mendix.m2ee.appcontainer.server.request.HttpMxRuntimeRequest.getParameter(HttpMxRuntimeRequest.scala:32)     at com.mendix.webui.requesthandling.FileUploadHelper.readFilePartsFromRequest(FileUploadHelper.scala:164)     at com.mendix.webui.requesthandling.FileUploadHelper.checkFileForUpload(FileUploadHelper.scala:96)     at com.mendix.webui.requesthandling.FileUploadHelper.doUpload(FileUploadHelper.scala:124)     at com.mendix.webui.requesthandling.FileUploadHelper.handleUpload(FileUploadHelper.scala:44)     at com.mendix.webui.requesthandling.FileRequestHandler.handleRequest(FileRequestHandler.scala:39)     at com.mendix.webui.requesthandling.FileRequestHandler.processRequest(FileRequestHandler.scala:31)     at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)     at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:54)     at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:54)     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)     at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:54)     at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:221)     at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)     at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)     at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)     at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)     at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1385)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1307)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)     at org.eclipse.jetty.server.Server.handle(Server.java:563)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)     at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:936)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1080)     at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.IllegalStateException: Form is larger than max length 200000     at org.eclipse.jetty.server.Request.getParts(Request.java:2384)     at org.eclipse.jetty.server.Request.extractContentParameters(Request.java:558)     at org.eclipse.jetty.server.Request.getParameters(Request.java:466)     at org.eclipse.jetty.server.Request.getParameter(Request.java:1052)     at com.mendix.m2ee.appcontainer.server.request.HttpMxRuntimeRequest.getParameter(HttpMxRuntimeRequest.scala:32)     at com.mendix.webui.requesthandling.FileUploadHelper.readFilePartsFromRequest(FileUploadHelper.scala:164)     at com.mendix.webui.requesthandling.FileUploadHelper.checkFileForUpload(FileUploadHelper.scala:96)     at com.mendix.webui.requesthandling.FileUploadHelper.doUpload(FileUploadHelper.scala:124)     at com.mendix.webui.requesthandling.FileUploadHelper.handleUpload(FileUploadHelper.scala:44)     at com.mendix.webui.requesthandling.FileRequestHandler.handleRequest(FileRequestHandler.scala:39)     at com.mendix.webui.requesthandling.FileRequestHandler.processRequest(FileRequestHandler.scala:31)     at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)     at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:54)     at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:54)     at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)     at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:54)     at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:221)     at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:40)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)     at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)     at org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:170)     at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)     at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1385)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1307)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)     at org.eclipse.jetty.server.Server.handle(Server.java:563)     at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)     at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)     at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)     at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:936)     at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1080)     at java.base/java.lang.Thread.run(Thread.java:829)        
asked
2 answers
0

Hi Richard,

 

I encountered a similar issue when creating a new page to upload files locally. The error is telling you the request to the server that is made when the file is sent there is too large to parse. This is likely caused by multiple objects containing filecontents being sent to the server within a single request. Is the object you are uploading the file to associated with any other (uncommited) objects with large contents? If so, commiting these other objects first (before opening the upload page) or committing all objects seperately in a nanoflow might solve your error.

 

The error might also only appear when developing locally. The threshold for what request sizes can be parsed by the server differs per environment. The Mendix cloud for example allows a max content size of 10,485,760, compared to the 200,000 that is given in your stacktrace.

 

Hope this helps!

answered
0

You may just need to wait a Few Seconds, in my Experience the Client was too slow with Analyzing the File and was sending rubish to the Server (according to the Browser Logs)

 

If you give it a few secs (Depending on File Size) it should be running.

For me it looks like a Mendix Webclient issue

answered