Edge Audit Log: Project not found

I just noticed one of our edge device logs is being flooded with "Error getting project properties for Edge audit log". I've reviewed all the locations where the Audit log is configured, and everything seems to check out. I'm not sure where to look next.

|EdgeAuditManager|16Jun2023 19:39:48|Error getting project properties for Edge audit log.|

com.inductiveautomation.ignition.common.project.ProjectNotFoundException: project not found: null
at com.inductiveautomation.ignition.gateway.project.IgnitionProjectManager.lambda$getProjectProps$1(IgnitionProjectManager.java:152)
at java.base/java.util.Optional.orElseThrow(Unknown Source)
at com.inductiveautomation.ignition.gateway.project.IgnitionProjectManager.getProjectProps(IgnitionProjectManager.java:152)
at com.inductiveautomation.ignition.gateway.audit.EdgeAuditManager.getProfileForProject(EdgeAuditManager.java:95)
at com.inductiveautomation.ignition.gateway.script.GatewayTagUtilities.audit(GatewayTagUtilities.java:660)
at com.inductiveautomation.ignition.gateway.script.GatewayTagUtilities.writeBlockingImpl(GatewayTagUtilities.java:305)
at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.writeBlocking(AbstractTagUtilities.java:537)
at jdk.internal.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.__call__(ScriptManager.java:549)
at org.python.core.PyObject.__call__(PyObject.java:477)
at org.python.core.PyObject.__call__(PyObject.java:481)
at org.python.pycode._pyx11.valueChanged$1(:4)
at org.python.pycode._pyx11.call_function()
at org.python.core.PyTableCode.call(PyTableCode.java:173)
at org.python.core.PyBaseCode.call(PyBaseCode.java:306)
at org.python.core.PyFunction.function___call__(PyFunction.java:474)
at org.python.core.PyFunction.__call__(PyFunction.java:469)
at org.python.core.PyFunction.__call__(PyFunction.java:464)
at com.inductiveautomation.ignition.common.script.ScriptManager.runFunction(ScriptManager.java:839)
at com.inductiveautomation.ignition.common.script.ScriptManager.runFunction(ScriptManager.java:821)
at com.inductiveautomation.ignition.gateway.tags.scripting.TagScriptManagerImpl$FunctionInvokerImpl.run(TagScriptManagerImpl.java:533)
at com.inductiveautomation.ignition.gateway.tags.scripting.events.AbstractTagScript.invoke(AbstractTagScript.java:34)
at com.inductiveautomation.ignition.gateway.tags.scripting.TagScriptManagerImpl$Task.invoke(TagScriptManagerImpl.java:482)
at com.inductiveautomation.ignition.gateway.tags.scripting.TagScriptManagerImpl$TagScriptDispatcher.run(TagScriptManagerImpl.java:445)
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:544)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

What version of Ignition is this?

Ignition Edge Gateway 8.1.20

This is fixed in 8.1.29:

IGN-7413: Edge Audit Manager: add extra handling for null project name
When no name is provided while trying to retrieve the profile for a project, null will be returned. When a name is provided the behavior remains unchanged

Thanks @PGriffith, "profile for a project" is this the audit log itself? how do you pull the profile for a project? Would this be when using "system.util.queryAuditLog"? Im not sure what to search for here to resolve this. I cannot update currently.

You've got a tag event script,

That is itself writing to another tag.

Because that tag write is happening on the gateway but not from a Perspective session, it is attempting to audit. That attempt to audit first looks for an appropriate project to determine if it should actually store anything to the audit log. Due to a bug, there's no project name passed through the getProfileForProject method, which leads to the exception.

So, there's nothing to resolve, but you're also not going to get these scripted tag writes in the audit log until you upgrade.