# System.alarm.shelve throwing an error

**URL:** <https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279>\
**Category:** Ignition\
**Tags:** scripting\
**Created:** [October 24, 2021, 4:28pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279 "2021-10-24T16:28:27Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![nathan1](https://avatars.discourse-cdn.com/v4/letter/n/8baadc/32.png) [@nathan1](https://forum.inductiveautomation.com/u/nathan1)\
**Post date:** [October 24, 2021, 4:28pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/1 "2021-10-24T16:28:27Z")

</div>

Hello. I'm trying to shelve an alarm via script and getting this error:

> interface.GatewayException: element cannot be mapped to a null key

The documentation on the alarm path is very sparse but I assume it is just the tag path?

```auto
alarmPath = "[default]Devices/Device_27/*"
system.alarm.shelve(path=alarmPath, timeoutMinutes=1)

```

I have tried permutations of the subtag, wildcards, etc. What am I missing?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [October 24, 2021, 4:30pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/2 "2021-10-24T16:30:33Z")

</div>

Can you post the full error including stack trace from the gateway logs?

As for the path:

> The paths may be either source paths, or display paths.

Also the path argument should be a list, so wrap it in square brackets:

```auto
system.alarm.shelve(path=[alarmPath], timeoutMinutes=1)

```

---

<div class="post-metadata">

**Author:** ![nathan1](https://avatars.discourse-cdn.com/v4/letter/n/8baadc/32.png) [@nathan1](https://forum.inductiveautomation.com/u/nathan1)\
**Post date:** [October 24, 2021, 4:32pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/3 "2021-10-24T16:32:15Z")

</div>

```auto

Java Traceback:
Traceback (most recent call last):
  File "<input>", line 2, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:945)
	at com.inductiveautomation.ignition.client.script.ClientAlarmUtilities.shelveImpl(ClientAlarmUtilities.java:55)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractAlarmUtilities.shelve(AbstractAlarmUtilities.java:110)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: element cannot be mapped to a null key

	at org.python.core.Py.JavaError(Py.java:547)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractAlarmUtilities.shelve(AbstractAlarmUtilities.java:112)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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:540)
	at org.python.core.PyObject. __call__ (PyObject.java:400)
	at org.python.pycode._pyx1620.f$0(<input>:2)
	at org.python.pycode._pyx1620.call_function(<input>)
	at org.python.core.PyTableCode.call(PyTableCode.java:173)
	at org.python.core.PyCode.call(PyCode.java:18)
	at org.python.core.Py.runCode(Py.java:1687)
	at org.python.core.Py.exec(Py.java:1731)
	at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:277)
	at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:130)
	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:605)
	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:593)
	at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.desktop/javax.swing.SwingWorker.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)
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: element cannot be mapped to a null key
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:945)
	at com.inductiveautomation.ignition.client.script.ClientAlarmUtilities.shelveImpl(ClientAlarmUtilities.java:55)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractAlarmUtilities.shelve(AbstractAlarmUtilities.java:110)
	... 23 more
Caused by: java.lang.NullPointerException: element cannot be mapped to a null key
	at java.util.Objects.requireNonNull(null)
	at java.util.stream.Collectors.lambda$groupingBy$53(null)
	at java.util.stream.ReduceOps$3ReducingSink.accept(null)
	at java.util.stream.ReferencePipeline$3$1.accept(null)
	at java.util.stream.ReferencePipeline$2$1.accept(null)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(null)
	at java.util.stream.AbstractPipeline.copyInto(null)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(null)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(null)
	at java.util.stream.AbstractPipeline.evaluate(null)
	at java.util.stream.ReferencePipeline.collect(null)
	at com.inductiveautomation.ignition.gateway.alarming.AlarmManagerImpl.shelve(AlarmManagerImpl.java:302)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.Alarming.shelve(Alarming.java:79)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(null)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(null)
	at java.lang.reflect.Method.invoke(null)
	at com.inductiveautomation.ignition.gateway.servlets.gateway.AbstractGatewayFunction.invoke(AbstractGatewayFunction.java:225)
	at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:405)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
	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)
	at java.lang.Thread.run(null)
Traceback (most recent call last):
  File "<input>", line 2, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:945)
	at com.inductiveautomation.ignition.client.script.ClientAlarmUtilities.shelveImpl(ClientAlarmUtilities.java:55)
	at com.inductiveautomation.ignition.common.script.builtin.AbstractAlarmUtilities.shelve(AbstractAlarmUtilities.java:110)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: element cannot be mapped to a null key

```

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [October 24, 2021, 4:33pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/4 "2021-10-24T16:33:45Z")

</div>

What version of Ignition is this?

---

<div class="post-metadata">

**Author:** ![nathan1](https://avatars.discourse-cdn.com/v4/letter/n/8baadc/32.png) [@nathan1](https://forum.inductiveautomation.com/u/nathan1)\
**Post date:** [October 24, 2021, 4:34pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/5 "2021-10-24T16:34:28Z")

</div>

Thanks for the reply Kevin. I am running 8.1.9

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [October 24, 2021, 4:37pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/6 "2021-10-24T16:37:02Z")

</div>

I’ll have to look closer at this tomorrow. Seems like a nasty error for what’s probably just a path that doesn’t lead to any alarms or something like that.

---

<div class="post-metadata">

**Author:** ![nathan1](https://avatars.discourse-cdn.com/v4/letter/n/8baadc/32.png) [@nathan1](https://forum.inductiveautomation.com/u/nathan1)\
**Post date:** [October 24, 2021, 4:37pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/7 "2021-10-24T16:37:43Z")

</div>

Okay, thanks for checking. I get the same error when passing the path as a list. There is a current alarm on the tag that I am testing also.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [October 24, 2021, 4:39pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/8 "2021-10-24T16:39:31Z")

</div>

For now try using alarm display paths in your path argument. Looks like you’re trying to use source but maybe the syntax isn’t what is expected.

---

<div class="post-metadata">

**Author:** ![nathan1](https://avatars.discourse-cdn.com/v4/letter/n/8baadc/32.png) [@nathan1](https://forum.inductiveautomation.com/u/nathan1)\
**Post date:** [October 25, 2021, 2:51pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/9 "2021-10-25T14:51:02Z")

</div>

Unfortunately I get the same error when using the display path. I initially thought it may be related to the tag be a Reference tag but I got the same error on a memory tag.

---

<div class="post-metadata">

**Author:** ![nathan1](https://avatars.discourse-cdn.com/v4/letter/n/8baadc/32.png) [@nathan1](https://forum.inductiveautomation.com/u/nathan1)\
**Post date:** [October 26, 2021, 1:55pm UTC](https://forum.inductiveautomation.com/t/system-alarm-shelve-throwing-an-error/52279/10 "2021-10-26T13:55:48Z")

</div>

I got it working. It was indeed the format of the source as you suspected. Once I queried the alarms it became apparent. I think the documentation could definitely use some love though. There is no mention of the this format. Thanks for pointing me in the right direction.

`system.alarm.shelve(path=['prov:default:/tag:Devices/Device_25/main_alarm:/alm:MainAlarm'], timeoutSeconds=60)`
