# Error when using system.twilio.sendPhoneCall

**URL:** <https://forum.inductiveautomation.com/t/error-when-using-system-twilio-sendphonecall/112101>\
**Category:** Ignition\
**Tags:** ignition83\
**Created:** [November 11, 2025, 4:39pm UTC](https://forum.inductiveautomation.com/t/error-when-using-system-twilio-sendphonecall/112101 "2025-11-11T16:39:30Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![automatisation](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@automatisation](https://forum.inductiveautomation.com/u/automatisation)\
**Post date:** [November 11, 2025, 4:39pm UTC](https://forum.inductiveautomation.com/t/error-when-using-system-twilio-sendphonecall/112101/1 "2025-11-11T16:39:30Z")

</div>

Hello,

I am unable to use the `system.twilio.sendPhoneCall`, when doing so i get the following error :

```python
java.lang.ClassCastException: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap') 

```

Here is the full stack trace :

```python
Java Traceback:
Traceback (most recent call last):
  File "<input>", line 7, in <module>
	at com.digitalpetri.ignition.twilio.common.rpc.TwilioRpc$1.encode(TwilioRpc.java:40)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeRpcMessage(ProtoRpcSerializer.java:85)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.writeParameters(ProtoRpcSerializer.java:374)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.lambda$invoke$5(GatewayInterface.java:345)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:379)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:342)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)

	at jdk.proxy2/jdk.proxy2.$Proxy83.sendPhoneCall(Unknown Source)

	at com.digitalpetri.ignition.twilio.client.scripting.ScriptModule.onSendPhoneCall(ScriptModule.java:61)

	at com.digitalpetri.ignition.twilio.common.scripting.AbstractTwilioScriptModule.sendPhoneCall(AbstractTwilioScriptModule.java:174)

	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)

java.lang.ClassCastException: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')

	at org.python.core.Py.JavaError(Py.java:545)

	at org.python.core.Py.JavaError(Py.java:536)

	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:192)

	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:563)

	at org.python.core.PyObject. __call__ (PyObject.java:512)

	at org.python.core.PyObject. __call__ (PyObject.java:517)

	at org.python.pycode._pyx24.f$0(<input>:7)

	at org.python.pycode._pyx24.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:1703)

	at org.python.core.Py.exec(Py.java:1747)

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

	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:616)

	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: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')

	at com.digitalpetri.ignition.twilio.common.rpc.TwilioRpc$1.encode(TwilioRpc.java:40)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeRpcMessage(ProtoRpcSerializer.java:85)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.writeParameters(ProtoRpcSerializer.java:374)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.lambda$invoke$5(GatewayInterface.java:345)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:379)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:342)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)

	at jdk.proxy2/jdk.proxy2.$Proxy83.sendPhoneCall(Unknown Source)

	at com.digitalpetri.ignition.twilio.client.scripting.ScriptModule.onSendPhoneCall(ScriptModule.java:61)

	at com.digitalpetri.ignition.twilio.common.scripting.AbstractTwilioScriptModule.sendPhoneCall(AbstractTwilioScriptModule.java:174)

	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)

	... 19 more

Traceback (most recent call last):
  File "<input>", line 7, in <module>
	at com.digitalpetri.ignition.twilio.common.rpc.TwilioRpc$1.encode(TwilioRpc.java:40)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeRpcMessage(ProtoRpcSerializer.java:85)

	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.writeParameters(ProtoRpcSerializer.java:374)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.lambda$invoke$5(GatewayInterface.java:345)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:379)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:342)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)

	at jdk.proxy2/jdk.proxy2.$Proxy83.sendPhoneCall(Unknown Source)

	at com.digitalpetri.ignition.twilio.client.scripting.ScriptModule.onSendPhoneCall(ScriptModule.java:61)

	at com.digitalpetri.ignition.twilio.common.scripting.AbstractTwilioScriptModule.sendPhoneCall(AbstractTwilioScriptModule.java:174)

	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)

java.lang.ClassCastException: java.lang.ClassCastException: class com.digitalpetri.ignition.twilio.common.voice.CallConfig cannot be cast to class java.io.Serializable (com.digitalpetri.ignition.twilio.common.voice.CallConfig is in unnamed module of loader java.net.URLClassLoader @12360d67; java.io.Serializable is in module java.base of loader 'bootstrap')

```

I’m calling this function from the script console, the communication with the gateway is in read/write.

I’ve tried it both with Ignition 8.3.0 / Twilio 4.3.0 and Ignition 8.3.1 / Twilio 4.3.1, and got the same result.

I think it’s related to the function itself and not to how Twilio is configured on the gateway because it’s working perfectly if I send an SMS using `system.twilio.sendSms`.

Any ideas on how to fix it ?

---

<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 11, 2025, 4:47pm UTC](https://forum.inductiveautomation.com/t/error-when-using-system-twilio-sendphonecall/112101/2 "2025-11-11T16:47:46Z")

</div>

This is an RPC bug. You will need to open a support ticket so IA can fix in a future version.

As a work-around, run this in gateway scope via a message handler, or perhaps with my Integration Toolkit's `@system.util.runInGateway` decorator.
