[BUG-14192] Ignition Edge Startup FAULTED

I have a new Ignition Edge install that is faulting on every startup, and I can’t find anything in my wrapper.log that says ERROR, all of the entries are INFO.
The last thing to happen is a NullPointerException then it updates the ContextState to FAULTED.

Here is the last bit of the log:

INFO   | jvm 1    | 2019/06/13 06:21:47 | I [ImageManager                  ] [06:21:47]: Starting up...
INFO   | jvm 1    | 2019/06/13 06:21:48 | E [IgnitionGateway               ] [06:21:48]: Error during context startup.
INFO   | jvm 1    | 2019/06/13 06:21:48 | java.lang.NullPointerException: null
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFile(ImageManagerImpl.java:109)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:84)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:82)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:82)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.startup(ImageManagerImpl.java:64)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1069)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:272)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:664)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:602)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.lang.Thread.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | I [IgnitionGateway               ] [06:21:48]: Ignition[state=STARTING] ContextState = FAULTED

Here is the entire log:

STATUS | wrapper  | 2019/06/13 06:17:57 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2019/06/13 06:17:57 | Java Service Wrapper Standard Edition 32-bit 3.5.35
STATUS | wrapper  | 2019/06/13 06:17:57 |   Copyright (C) 1999-2018 Tanuki Software, Ltd. All Rights Reserved.
STATUS | wrapper  | 2019/06/13 06:17:57 |     http://wrapper.tanukisoftware.com
STATUS | wrapper  | 2019/06/13 06:17:57 |   Licensed to Inductive Automation for Inductive Automation
STATUS | wrapper  | 2019/06/13 06:17:57 |
STATUS | wrapper  | 2019/06/13 06:17:59 | Launching a JVM...
INFO   | jvm 1    | 2019/06/13 06:18:03 | WrapperManager: Initializing...
INFO   | jvm 1    | 2019/06/13 06:18:19 | 06:18:19,148 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
INFO   | jvm 1    | 2019/06/13 06:18:19 | 06:18:19,482 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SysoutAppender]
INFO   | jvm 1    | 2019/06/13 06:18:19 | 06:18:19,787 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
INFO   | jvm 1    | 2019/06/13 06:18:21 | 06:18:21,243 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [com.inductiveautomation.logging.SQLiteAppender]
INFO   | jvm 1    | 2019/06/13 06:18:21 | 06:18:21,567 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [DB]
INFO   | jvm 1    | 2019/06/13 06:18:22 | 06:18:22,902 |-INFO in ch.qos.logback.core.db.DataSourceConnectionSource@8fae27 - Driver name=SQLiteJDBC
INFO   | jvm 1    | 2019/06/13 06:18:22 | 06:18:22,904 |-INFO in ch.qos.logback.core.db.DataSourceConnectionSource@8fae27 - Driver version=native
INFO   | jvm 1    | 2019/06/13 06:18:22 | 06:18:22,905 |-INFO in ch.qos.logback.core.db.DataSourceConnectionSource@8fae27 - supportsGetGeneratedKeys=true
INFO   | jvm 1    | 2019/06/13 06:18:22 | 06:18:22,983 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,021 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SysoutAsync]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,034 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SysoutAppender] to ch.qos.logback.classic.AsyncAppender[SysoutAsync]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,036 |-INFO in ch.qos.logback.classic.AsyncAppender[SysoutAsync] - Attaching appender named [SysoutAppender] to AsyncAppender.
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,050 |-INFO in ch.qos.logback.classic.AsyncAppender[SysoutAsync] - Setting discardingThreshold to 51
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,063 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,065 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [DBAsync]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,070 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [DB] to ch.qos.logback.classic.AsyncAppender[DBAsync]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,071 |-INFO in ch.qos.logback.classic.AsyncAppender[DBAsync] - Attaching appender named [DB] to AsyncAppender.
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,072 |-INFO in ch.qos.logback.classic.AsyncAppender[DBAsync] - Setting discardingThreshold to 51
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,074 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,076 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SysoutAsync] to Logger[ROOT]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,078 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [DBAsync] to Logger[ROOT]
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,079 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
INFO   | jvm 1    | 2019/06/13 06:18:23 | 06:18:23,107 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@e09a3 - Registering current configuration as safe fallback point
INFO   | jvm 1    | 2019/06/13 06:18:24 | W [WebResourceManagerImpl        ] [06:18:24]: Unable to read "gateway.metroKeystoreAlias" gateway.xml property. Assuming metro keystore alias is: metro-key
INFO   | jvm 1    | 2019/06/13 06:18:36 | I [o.e.j.u.log                   ] [06:18:36]: Logging initialized @35981ms to org.eclipse.jetty.util.log.Slf4jLog
INFO   | jvm 1    | 2019/06/13 06:18:44 | I [IgnitionServer                ] [06:18:44]: Existing keystore found at webserver/ssl.key
INFO   | jvm 1    | 2019/06/13 06:18:44 | I [o.e.j.s.Server                ] [06:18:44]: jetty-9.4.8.v20180619, build timestamp: 2018-06-20T23:55:30Z, git hash: c9493e74cb4f10f4abbc9018a634e005155d6d6e
INFO   | jvm 1    | 2019/06/13 06:18:46 | I [o.e.j.w.StandardDescriptorProcessor] [06:18:46]: NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
INFO   | jvm 1    | 2019/06/13 06:18:46 | I [o.e.j.s.session               ] [06:18:46]: DefaultSessionIdManager workerName=node0
INFO   | jvm 1    | 2019/06/13 06:18:46 | I [o.e.j.s.session               ] [06:18:46]: No SessionScavenger set, using defaults
INFO   | jvm 1    | 2019/06/13 06:18:46 | I [o.e.j.s.session               ] [06:18:46]: Scavenging every 600000ms
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.Application             ] [06:18:50]: [WicketFilter] init: Wicket core library initializer
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.RequestListenerInterface] [06:18:50]: registered listener interface [RequestListenerInterface name=IBehaviorListener, method=public abstract void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.RequestListenerInterface] [06:18:50]: registered listener interface [RequestListenerInterface name=IFormSubmitListener, method=public abstract void org.apache.wicket.markup.html.form.IFormSubmitListener.onFormSubmitted()]
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.RequestListenerInterface] [06:18:50]: registered listener interface [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.RequestListenerInterface] [06:18:50]: registered listener interface [RequestListenerInterface name=IOnChangeListener, method=public abstract void org.apache.wicket.markup.html.form.IOnChangeListener.onSelectionChanged()]
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.RequestListenerInterface] [06:18:50]: registered listener interface [RequestListenerInterface name=IRedirectListener, method=public abstract void org.apache.wicket.IRedirectListener.onRedirect()]
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.RequestListenerInterface] [06:18:50]: registered listener interface [RequestListenerInterface name=IResourceListener, method=public abstract void org.apache.wicket.IResourceListener.onResourceRequested()]
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [o.a.w.Application             ] [06:18:50]: [WicketFilter] init: Wicket extensions initializer
INFO   | jvm 1    | 2019/06/13 06:18:50 | I [IgnitionGateway               ] [06:18:50]: Ignition[state=STOPPED] ContextState = STARTING
INFO   | jvm 1    | 2019/06/13 06:18:51 | I [o.a.w.p.h.WebApplication      ] [06:18:51]: [WicketFilter] Started Wicket version 6.1.1 in DEPLOYMENT mode
INFO   | jvm 1    | 2019/06/13 06:18:52 | I [IgnitionGateway               ] [06:18:52]: Starting Ignition 8.0.2 (b2019060511)
INFO   | jvm 1    | 2019/06/13 06:18:52 | I [IgnitionGateway               ] [06:18:52]: Reloading JDBC classloader.
INFO   | jvm 1    | 2019/06/13 06:18:57 | I [o.e.j.s.h.ContextHandler      ] [06:18:57]: Started o.e.j.w.WebAppContext@1deab2f{/,file:///usr/local/ignition/webserver/webapps/main/,AVAILABLE}
INFO   | jvm 1    | 2019/06/13 06:18:57 | I [R.S.S.InternalDb              ] [06:18:57]: Internal db synchronizer disk cache initialized. State id=
INFO   | jvm 1    | 2019/06/13 06:18:57 | I [R.StateMonitoring             ] [06:18:57]: Redundancy state changed: Role=Independent, Activity level=Active, Project state=Good, History level=Full
INFO   | jvm 1    | 2019/06/13 06:18:58 | I [g.InternalDatabaseManager     ] [06:18:58]: Starting up...
INFO   | jvm 1    | 2019/06/13 06:18:58 | I [P.InternalDatabase            ] [06:18:58]: Looking for existing internal database "config.idb"...
INFO   | jvm 1    | 2019/06/13 06:18:59 | I [P.InternalDatabase            ] [06:18:59]: ... found existing.
INFO   | jvm 1    | 2019/06/13 06:19:00 | I [P.InternalDatabase            ] [06:19:00]: internal database "config.idb" started up successfully.
INFO   | jvm 1    | 2019/06/13 06:19:00 | I [P.InternalDatabase            ] [06:19:00]: Registering autobackup task [owner=Internal DB Autobackup, name=internal database "config.idb"]
INFO   | jvm 1    | 2019/06/13 06:19:01 | WARNING: An illegal reflective access operation has occurred
INFO   | jvm 1    | 2019/06/13 06:19:01 | WARNING: Illegal reflective access by com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl (file:/usr/local/ignition/lib/core/gateway/gateway-8.0.2.jar) to field java.lang.ClassLoader.usr_paths
INFO   | jvm 1    | 2019/06/13 06:19:01 | WARNING: Please consider reporting this to the maintainers of com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl
INFO   | jvm 1    | 2019/06/13 06:19:01 | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
INFO   | jvm 1    | 2019/06/13 06:19:01 | WARNING: All illegal access operations will be denied in a future release
INFO   | jvm 1    | 2019/06/13 06:19:02 | I [g.ModuleManager               ] [06:19:01]: Loading modules....
INFO   | jvm 1    | 2019/06/13 06:19:11 | I [o.e.j.s.AbstractConnector     ] [06:19:11]: Started ServerConnector@935c88{SSL,[ssl, http/1.1]}{0.0.0.0:8060}
INFO   | jvm 1    | 2019/06/13 06:19:11 | I [o.e.j.s.AbstractConnector     ] [06:19:11]: Started ServerConnector@96421a{HTTP/1.1,[http/1.1]}{0.0.0.0:8088}
INFO   | jvm 1    | 2019/06/13 06:19:22 | I [o.e.j.s.AbstractConnector     ] [06:19:22]: Started ServerConnector@11fda58{SSL,[ssl, http/1.1]}{0.0.0.0:8043}
INFO   | jvm 1    | 2019/06/13 06:19:22 | I [o.e.j.s.Server                ] [06:19:22]: Started @82050ms
INFO   | jvm 1    | 2019/06/13 06:19:41 | I [A.Notification                ] [06:19:41]: Alert notification system created.
INFO   | jvm 1    | 2019/06/13 06:19:57 | I [g.PersistentRecordSecurityLevelConfigService] [06:19:57]: Set up in 49 ms
INFO   | jvm 1    | 2019/06/13 06:19:57 | I [g.PersistentRecordIdpAdapterConfigService] [06:19:57]: Set up in 80 ms
INFO   | jvm 1    | 2019/06/13 06:19:57 | I [g.PersistentRecordIdpAdapterMetricsService] [06:19:57]: Set up in 50 ms
INFO   | jvm 1    | 2019/06/13 06:20:06 | I [c.i.i.g.p.r.ProjectRecordConverter] [06:20:06]: Conversion finished. Elapsed time: 488 ms
INFO   | jvm 1    | 2019/06/13 06:20:44 | I [g.ModuleManager               ] [06:20:44]: Setting up modules
INFO   | jvm 1    | 2019/06/13 06:20:45 | I [G.L.A.AlarmNotificationService] [06:20:45]: Remote Alarm Notification Manager initialized successfully.
INFO   | jvm 1    | 2019/06/13 06:20:46 | I [c.i.i.g.o.KeyStoreManager     ] [06:20:46]: Loading KeyStore at /usr/local/ignition/data/opcua/client/security/certificates.pfx
INFO   | jvm 1    | 2019/06/13 06:20:49 | I [c.i.i.g.o.KeyStoreManager     ] [06:20:49]: Loading KeyStore at /usr/local/ignition/data/opcua/server/security/certificates.pfx
INFO   | jvm 1    | 2019/06/13 06:20:54 | I [o.e.m.o.s.s.OpcUaServer       ] [06:20:54]: Eclipse Milo OPC UA Stack version: 0.3.0
INFO   | jvm 1    | 2019/06/13 06:20:54 | I [o.e.m.o.s.s.OpcUaServer       ] [06:20:54]: Eclipse Milo OPC UA Server SDK version: 0.3.0
INFO   | jvm 1    | 2019/06/13 06:21:28 | I [o.e.m.o.s.s.n.OpcUaNamespace  ] [06:21:28]: Loaded nodes in 22345ms.
INFO   | jvm 1    | 2019/06/13 06:21:28 | W [c.i.i.g.o.s.DeviceManagerNamespace] [06:21:28]: AddressSpace already registered: com.inductiveautomation.ignition.gateway.opcua.server.DeviceManagerNamespace$DeviceManagerAddressSpace@1ad0a04
INFO   | jvm 1    | 2019/06/13 06:21:38 | W [g.EdgeProjectManager          ] [06:21:38]: Invalid project for this platform edition: ''.
INFO   | jvm 1    | 2019/06/13 06:21:41 | I [g.PersistentRecordSecurityLevelConfigService] [06:21:41]: Started up in 0 ms
INFO   | jvm 1    | 2019/06/13 06:21:41 | I [g.SecurityLevelManager        ] [06:21:41]: Started up in 309 ms
INFO   | jvm 1    | 2019/06/13 06:21:41 | I [g.PersistentRecordIdpAdapterConfigService] [06:21:41]: Started up in 0 ms
INFO   | jvm 1    | 2019/06/13 06:21:41 | I [g.PersistentRecordIdpAdapterMetricsService] [06:21:41]: Started up in 0 ms
INFO   | jvm 1    | 2019/06/13 06:21:41 | I [g.IdpAdapterManager           ] [06:21:41]: Started up in 446 ms
INFO   | jvm 1    | 2019/06/13 06:21:41 | I [t.m.provider                  ] [06:21:41]: Tag provider initialized. Starting to load tags...
INFO   | jvm 1    | 2019/06/13 06:21:42 | I [t.m.provider                  ] [06:21:42]: Complete tag loading in 698 ms
INFO   | jvm 1    | 2019/06/13 06:21:42 | I [t.manager                     ] [06:21:42]: Instantiating provider 'edge' of type 'STANDARD'
INFO   | jvm 1    | 2019/06/13 06:21:43 | I [t.m.provider                  ] [06:21:42]: Tag provider initialized. Starting to load tags...
INFO   | jvm 1    | 2019/06/13 06:21:43 | I [t.m.provider                  ] [06:21:43]: Complete tag loading in 293 ms
INFO   | jvm 1    | 2019/06/13 06:21:44 | I [i.UserSourceManager           ] [06:21:44]: Starting up...
INFO   | jvm 1    | 2019/06/13 06:21:45 | I [A.S.StorageManager            ] [06:21:45]: Starting up...
INFO   | jvm 1    | 2019/06/13 06:21:45 | I [A.N.NotificationManager       ] [06:21:45]: Starting up...
INFO   | jvm 1    | 2019/06/13 06:21:46 | I [S.S.DefaultStoreAndForwardEngine] [06:21:46]: History sink 'Edge Historian' started successfully. store-forward-name=Edge Historian
INFO   | jvm 1    | 2019/06/13 06:21:47 | I [a.J.Journal                   ] [06:21:47]: Alarm journal initialized successfully.
INFO   | jvm 1    | 2019/06/13 06:21:47 | I [a.J.Journal                   ] [06:21:47]: Alarm journal system started.
INFO   | jvm 1    | 2019/06/13 06:21:47 | I [ImageManager                  ] [06:21:47]: Starting up...
INFO   | jvm 1    | 2019/06/13 06:21:48 | E [IgnitionGateway               ] [06:21:48]: Error during context startup.
INFO   | jvm 1    | 2019/06/13 06:21:48 | java.lang.NullPointerException: null
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFile(ImageManagerImpl.java:109)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:84)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:82)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:82)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.startup(ImageManagerImpl.java:64)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1069)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:272)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:664)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:602)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | 	at java.base/java.lang.Thread.run(Unknown Source)
INFO   | jvm 1    | 2019/06/13 06:21:48 | I [IgnitionGateway               ] [06:21:48]: Ignition[state=STARTING] ContextState = FAULTED

Looks like the attempt to import the built-in icons at data/db/Builtin are failing. What OS are you running on?

OS is Debian 9.

Can I safely assume you are running this on an ARMHF device? which one? Also are you using Ignition 8.0.2?

Yes it is an ARMHF device, it’s a Moxa UC-8100, and yes it’s 8.0.2.

The specs of the device is a 1GHz CPU and 512MB of RAM.

Do you have a bunch of icons under data/db/imgimport/Builtin/icons/16 (and 24, 32, 48)?

Yes I do, in all of the folders.

Okay… wild guess time.

Does your system have libpng installed?

kevin@kevin-x1 ~> ldconfig -p | grep png
        libpng16.so.16 (libc6,x86-64) => /usr/lib/libpng16.so.16
        libpng16.so.16 (libc6) => /usr/lib32/libpng16.so.16
        libpng16.so (libc6,x86-64) => /usr/lib/libpng16.so
        libpng16.so (libc6) => /usr/lib32/libpng16.so

Or if you don’t have ldconfig either you’ll have to dig around wherever the system libraries are.

Sorry it took me so long to get back to you, I did not have libpng install so I did a sudo apt-get install libpng-dev and ran ldconfig -p | grep png again and got the following results:

carefree@Moxa:~$ sudo ldconfig -p | grep png
	libpng16.so.16 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpng16.so.16
	libpng16.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libpng16.so

I then tried to restart the gateway, but I got the same error message in my wrapper log.

INFO   | jvm 1    | 2019/06/14 15:57:05 | E [IgnitionGateway               ] [15:57:05]: Error during context startup.
INFO   | jvm 1    | 2019/06/14 15:57:05 | java.lang.NullPointerException: null
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFile(ImageManagerImpl.java:109)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:84)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:82)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.importImageFolder(ImageManagerImpl.java:82)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.startup(ImageManagerImpl.java:64)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1069)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:272)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:664)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:602)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
INFO   | jvm 1    | 2019/06/14 15:57:05 | 	at java.base/java.lang.Thread.run(Unknown Source)
INFO   | jvm 1    | 2019/06/14 15:57:05 | I [IgnitionGateway               ] [15:57:05]: Ignition[state=STARTING] ContextState = FAULTED

I’m out of ideas. Unless some of those png files are corrupt I don’t know why it’s failing to read them.

You could probably delete them all as a workaround.

Just remove the icons directory?
I’m just using MQTT so I shouldn’t need them.
[EDIT]
Restarted the gateway after removing the icons directory and that worked.

1 Like

The NPE should be resolved in the latest 8.0.3 Nightly. We were unable to duplicate this issue in-house though and my concern is we fixed a symptom of a larger issue. If you get a chance to test this fix and report back it would be appreciated.

Garth