# Cannot coerce value into type: interface java.util.Map

**URL:** <https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [November 25, 2023, 7:43am UTC](https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344 "2023-11-25T07:43:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wdfus](https://avatars.discourse-cdn.com/v4/letter/w/848f3c/32.png) [@wdfus](https://forum.inductiveautomation.com/u/wdfus)\
**Post date:** [November 25, 2023, 7:43am UTC](https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344/1 "2023-11-25T07:43:42Z")

</div>

Version: 8.1.32 (b2023091211)

Error running action 'component.onActionPerformed' on Control@D/root/WriteButton: Traceback (most recent call last): File "function:runAction", line 3, in runAction at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1596) at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:130) at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:82) at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:40) at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.interpretWithOptionalProject(GatewayDBUtilities.java:487) at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.runNamedQuery(GatewayDBUtilities.java:392) at jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) java.lang.ClassCastException: java.lang.ClassCastException: **Cannot coerce value '73.5' into type: interface java.util.Map**

---

<div class="post-metadata">

**Author:** ![wdfus](https://avatars.discourse-cdn.com/v4/letter/w/848f3c/32.png) [@wdfus](https://forum.inductiveautomation.com/u/wdfus)\
**Post date:** [November 25, 2023, 7:45am UTC](https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344/2 "2023-11-25T07:45:09Z")

</div>

```auto
com.inductiveautomation.ignition.common.script.JythonExecException
Traceback (most recent call last):
  File "<function:runAction>", line 3, in runAction
	at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1596)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:130)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:82)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:40)
	at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.interpretWithOptionalProject(GatewayDBUtilities.java:487)
	at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.runNamedQuery(GatewayDBUtilities.java:392)
	at jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
java.lang.ClassCastException: java.lang.ClassCastException: Cannot coerce value '73.5' into type: interface java.util.Map

	at org.python.core.Py.JavaError(Py.java:547)
	at org.python.core.Py.JavaError(Py.java:538)
	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:192)
	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:553)
	at org.python.core.PyObject. __call__ (PyObject.java:477)
	at org.python.core.PyObject. __call__ (PyObject.java:481)
	at org.python.pycode._pyx15.runAction$1(<function:runAction>:3)
	at org.python.pycode._pyx15.call_function(<function:runAction>)
	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:847)
	at com.inductiveautomation.ignition.common.script.ScriptManager.runFunction(ScriptManager.java:829)
	at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.runFunction(ProjectScriptLifecycle.java:852)
	at com.inductiveautomation.ignition.common.script.ScriptManager$ScriptFunctionImpl.invoke(ScriptManager.java:1010)
	at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$AutoRecompilingScriptFunction.invoke(ProjectScriptLifecycle.java:934)
	at com.inductiveautomation.perspective.gateway.script.ScriptFunctionHelper.invoke(ScriptFunctionHelper.java:158)
	at com.inductiveautomation.perspective.gateway.script.ScriptFunctionHelper.invoke(ScriptFunctionHelper.java:97)
	at com.inductiveautomation.perspective.gateway.action.ScriptAction.runAction(ScriptAction.java:74)
	at com.inductiveautomation.perspective.gateway.model.ActionCollection$ActionSequence$ExecuteActionsTask.lambda$call$0(ActionCollection.java:263)
	at com.inductiveautomation.perspective.gateway.api.LoggingContext.mdc(LoggingContext.java:54)
	at com.inductiveautomation.perspective.gateway.model.ActionCollection$ActionSequence$ExecuteActionsTask.call(ActionCollection.java:252)
	at com.inductiveautomation.perspective.gateway.model.ActionCollection$ActionSequence$ExecuteActionsTask.call(ActionCollection.java:221)
	at com.inductiveautomation.perspective.gateway.threading.BlockingTaskQueue$TaskWrapper.run(BlockingTaskQueue.java:154)
	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.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at com.inductiveautomation.perspective.gateway.threading.BlockingWork$BlockingWorkRunnable.run(BlockingWork.java:58)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.python.core.PyException
Traceback (most recent call last):
  File "<function:runAction>", line 3, in runAction
	at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1596)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:130)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:82)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:40)
	at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.interpretWithOptionalProject(GatewayDBUtilities.java:487)
	at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.runNamedQuery(GatewayDBUtilities.java:392)
	at jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
java.lang.ClassCastException: java.lang.ClassCastException: Cannot coerce value '73.5' into type: interface java.util.Map

	... 32 more
Caused by: java.lang.ClassCastException
com.inductiveautomation.ignition.common.GenericTransferrableException: Cannot coerce value '73.5' into type: interface java.util.Map
	at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1596)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:130)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:82)
	at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:40)
	at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.interpretWithOptionalProject(GatewayDBUtilities.java:487)
	at com.inductiveautomation.ignition.gateway.script.GatewayDBUtilities.runNamedQuery(GatewayDBUtilities.java:392)
	at jdk.internal.reflect.GeneratedMethodAccessor73.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)
	... 29 more

Ignition v8.1.32 (b2023091211)
Java: Azul Systems, Inc. 11.0.18

```

---

<div class="post-metadata">

**Author:** ![wdfus](https://avatars.discourse-cdn.com/v4/letter/w/848f3c/32.png) [@wdfus](https://forum.inductiveautomation.com/u/wdfus)\
**Post date:** [November 25, 2023, 7:47am UTC](https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344/3 "2023-11-25T07:47:53Z")

</div>

I have a button with an event trying to execute a named query "change setpoint". The query works and I'm sure the issue is passing the parameter to the query. This is what I've tried. It seems like I might need a type conversion or something. This should be really easy but I've wasted a lot of time figure it out. Any help would be appreciated.

```auto
def runAction(self, event):
	parameters = {"param1": self.getSibling("NewSetpoint").props.value}
	system.db.runNamedQuery("change setpoint", parameters)

```

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/e/7eba11ea7804b25a3cde7075f255d613acb6169c.png)

---

<div class="post-metadata">

**Author:** ![wdfus](https://avatars.discourse-cdn.com/v4/letter/w/848f3c/32.png) [@wdfus](https://forum.inductiveautomation.com/u/wdfus)\
**Post date:** [November 25, 2023, 8:13am UTC](https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344/4 "2023-11-25T08:13:36Z")

</div>

It looks like I've answered my own question. This was not real clear and a better error description would be nice. You have to match the name of the parameter in the event with the name of the parameter in the query. I'm used to passing by value in Java.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/1/7116eca4f655765182beb12456c641a188b94a3a.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 25, 2023, 2:50pm UTC](https://forum.inductiveautomation.com/t/cannot-coerce-value-into-type-interface-java-util-map/82344/5 "2023-11-25T14:50:27Z")

</div>

Probably should not be datatype = 'String'.
