Cannot update any Project Properties in Ignition 8.1.13

I would like to change project properties like title.

Every
time i try to modify a certain project, i get a feedback "Failed to update project.
Gateway reported that it could not update project."

Facts:

  • The Gateway is used for training, actually there are around 30 projects available, but not all are up and running.
  • I haven’t found any similar topic
  • The issue is the same on all projects, even if i create a brand new one.
  • There are open Designer sessions, but not on the projects i tried to modify
  • It works, when i create the project on the gateway and not in the designer
  • There is an exception in the log (Below). It is the same for every try.
  • Ignition Version 8.1.13

The log shows following exception:
ProjectRoutes 30May2022 10:04:12 Exception while pushing change ops

com.inductiveautomation.ignition.common.project.ProjectPushException: MODIFY illegal, ‘ProjectResourceId{resourcePath=ignition/global-props, projectName=Smartdelivery_Team_6}’ doesn’t exist

Any ideas where i could look at?

Thanks in advance

Full Exception:

Summary

`com.inductiveautomation.ignition.common.project.ProjectPushException: MODIFY illegal, ‘ProjectResourceId{resourcePath=ignition/global-props, projectName=Smartdelivery_Team_6}’ doesn’t exist

at com.inductiveautomation.ignition.gateway.project.BaseProjectManager.push(BaseProjectManager.java:527)

at com.inductiveautomation.ignition.gateway.project.IgnitionProjectManager.push(IgnitionProjectManager.java:227)

at com.inductiveautomation.ignition.gateway.web.pages.config.routes.ProjectRoutes.editProject(ProjectRoutes.java:547)

at com.inductiveautomation.ignition.gateway.web.pages.config.routes.ProjectRoutes.lambda$mount$2(ProjectRoutes.java:170)

at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:254)

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$NotAsync.service(ServletHolder.java:1450)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)

at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)

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:1624)

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)

at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:116)

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:516)

at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)

at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)

at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555)

at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410)

at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)

at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)

*at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)`

Welcome to the forum. Tip: there’s a </> code formatting button that’s generally used for logs as well. If you want to be really cool you can collapse the long log as well: select the text, hit the gear icon and select Hide Details.

Hide details feature.
The result!

The problem seems to be solved, although I don’t know exactly why.

The affected projects are dependent on a parent project (inherited). After changing a property of the parent project (and subsequently resetting it to the old value) I was able to change the other project properties too.

Not really explainable from my point of view

Some background: The ‘global props’ resource that contains top-level project properties is assumed to always exist - thus, everywhere else in the designer, changes are made in an optimistic fashion, i.e. by changing the existing resource, rather than creating it a-new. It sounds like something about your inheritance scenario, or the order of operations in which you created this project, led to this resource that should always be there…not being there, which caused this problem. Triggering a modification in another way ended up creating the resource.

If you could provide any details (or try to reproduce) it’d be much appreciated, but I’ll keep this on the backburner and do some experimentation myself too.