[Perspective] Project Import Failing

I’m having issues importing a project on different Gateways.
Each time I start the import procedure, it fails and from the Gateway Logs I’m shown this stack trace, relative to the Error handling route warning.

at com.inductiveautomation.ignition.gateway.web.pages.config.routes.ProjectRoutes.importProject(ProjectRoutes.java:368)
at com.inductiveautomation.ignition.gateway.web.pages.config.routes.ProjectRoutes.lambda$mount$4(ProjectRoutes.java:187)
at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:252)
at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupImpl.service(RouteGroupImpl.java:61)
at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupCollectionServlet.serviceInternal(RouteGroupCollectionServlet.java:59)

This error doesn’t happen if I import the project through the Designer, but in this way I’m not able to overwrite the existing one: I must import the project with a different name, delete the old one and then rename the new one to its proper name.

This is the full stack trace.

org.eclipse.jetty.io.EofException: Early EOF
at org.eclipse.jetty.server.HttpInput$3.getError(HttpInput.java:1134)
at org.eclipse.jetty.server.HttpInput$3.noContent(HttpInput.java:1122)
at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:321)
at java.base/java.io.BufferedInputStream.fill(Unknown Source)
at java.base/java.io.BufferedInputStream.read(Unknown Source)
at org.eclipse.jetty.util.ReadLineInputStream.read(ReadLineInputStream.java:134)
at org.eclipse.jetty.util.MultiPartInputStreamParser.parse(MultiPartInputStreamParser.java:754)
at org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:482)
at org.eclipse.jetty.server.MultiParts$MultiPartsUtilParser.getParts(MultiParts.java:112)
at org.eclipse.jetty.server.Request.getParts(Request.java:2326)
at org.eclipse.jetty.server.Request.getParts(Request.java:2310)
at org.eclipse.jetty.server.Request.getPart(Request.java:2300)
**at com.inductiveautomation.ignition.gateway.web.pages.config.routes.ProjectRoutes.importProject(ProjectRoutes.java:368)**
**at com.inductiveautomation.ignition.gateway.web.pages.config.routes.ProjectRoutes.lambda$mount$4(ProjectRoutes.java:187)**
**at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:252)**
**at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupImpl.service(RouteGroupImpl.java:61)**
**at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupCollectionServlet.serviceInternal(RouteGroupCollectionServlet.java:59)**
**at com.inductiveautomation.ignition.gateway.dataroutes.AbstractRouteGroupServlet.service(AbstractRouteGroupServlet.java:38)**
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1391)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:760)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:500)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)

How large is this project .zip?

A little less than 27 MB.

I think the default max upload size is ~21mb…

You’ll have to modify the web.xml file and restart the gateway to increase it. In $IGNITION/webserver/webapps/main/WEB-INF/web.xml there’s a section like this:

  <servlet>
    <servlet-name>DataRoutes</servlet-name>
    <servlet-class>com.inductiveautomation.ignition.gateway.dataroutes.DataServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <multipart-config>
      <max-file-size>20848820</max-file-size>
      <max-request-size>418018841</max-request-size>
      <file-size-threshold>1048576</file-size-threshold>
    </multipart-config>
  </servlet>

You can change the max-file-size entry to something higher.

1 Like

Thank you. Tomorrow I’ll give it a try and I’ll let you know.
Have a nice evening!

I’ve doubled the max-file-size entry, but the issues is still there. The stack trace is still the same as well.

Did you restart the Ignition gateway after making the change?

Hello Kevin.
Yes, I’ve restarted the Ignition Gateway service.

Hmm, you might want to go through support then. They can take your project and test it here as a sanity check. If it works here then it could be something about your client environment causing problems. If not then maybe there is some other setting I’m missing.

May I ask for the proper way to contact support? Thank you.

https://support.inductiveautomation.com/

Calling is a much faster response time than sending an email or opening a web ticket.

1 Like

Just to update you, I’ve managed to successfully import the project via browser, but only if I upload it from the same server running the gateway; it doesn’t work from a browser running on another system, but on the same network.
Support is helping me sorting out our issue.

@Davide3i, did you ever figure out why this wasn’t working, or how to make it work?

I just ran into the same thing restoring a 988 KB project file. Two servers gave this error. I tried it on a third which imported it fine and then sent it successfully to the other two via EAM, but I’m curious why the two wouldn’t import it. The server that did import was in an office a city away. One of the two that wouldn’t was on the same LAN in same server room and the other was in a city hundreds of km away. All servers–including the one the project was exported from–are running Ignition 8.1.9.

Hello @witman.
In the end, apart following @Kevin.Herron suggestion (i.e.: modifying web.xml file), I found out the issue was about the way our VPN (and firewall) for remote assistance is set up.
If I upload the project directly from the system running the Gateway, the procedure works flawlessly. If I try to upload it from my notebook which is behind a VPN tunnel, it doesn’t work. The only explanation is that our company firewall is blocking some part of the packets the Gateway uses to correctly receive the project. I suppose this is the same issue you’re running into.

1 Like

Thanks @Davide3i. That makes sense. In our case I suspect there’s no firewall between the two computers in the same server room where import did not work, but anything’s possible. Will check with IT.

EDIT: On second thought, we’ve had a lot of changes and I just realized the computer I was working on via RDP is not in the same server room as the one it couldn’t upload to anymore. And it is in the same server room as the one it did upload to. It’s almost certainly an issue with our firewalls / new SD-WAN.

1 Like