# \[Bug-11643\] Message Handlers Error

**URL:** <https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815>\
**Category:** Ignition Early Access\
**Created:** [November 13, 2018, 7:34pm UTC](https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815 "2018-11-13T19:34:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrewbrown](https://avatars.discourse-cdn.com/v4/letter/a/a8b319/32.png) [@andrewbrown](https://forum.inductiveautomation.com/u/andrewbrown)\
**Post date:** [November 13, 2018, 7:34pm UTC](https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815/1 "2018-11-13T19:34:35Z")

</div>

Unexpected behaviour:  
Receiving an exception ‘error code=GENERAL\_PROTOCOL\_EXCEPTION [100]’ when requesting a message handler

Expected Behaviour:  
Receive payload back.

Steps Taken:  
Setup both gateways on the gateway network.  
Outgoing connection from V8 to V7.9.9 (Outgoing conenction V7.9.9 - V8 faulted\* may be the fault)  
Called message handler using system.util.sendRequest

Info:  
Calling gateway : 8.0.0-beta0 (b2018111302)  
Called gateway : 7.9.9 (b2018081621)

ERROR CODE BELOW:

```auto
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11) 
[OpenJDK 64-Bit Server VM (Azul Systems, Inc.)] on java11.0.1

>>> 
Java Traceback:

	at org.python.core.Py.JavaError(Py.java:546)
	at org.python.core.Py.JavaError(Py.java:537)
	at org.python.core.PyReflectedFunction. __call__ (PyReflectedFunction.java:188)
	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. __call__ (ScriptManager.java:436)
	at org.python.core.PyObject. __call__ (PyObject.java:394)
	at org.python.pycode._pyx8.f$0(<buffer>:2)
	at org.python.pycode._pyx8.call_function(<buffer>)
	at org.python.core.PyTableCode.call(PyTableCode.java:167)
	at org.python.core.PyCode.call(PyCode.java:18)
	at org.python.core.Py.runCode(Py.java:1386)
	at org.python.core.Py.exec(Py.java:1430)
	at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:276)
	at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:131)
	at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:116)
	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$InterpreterWorker.doInBackground(JythonConsole.java:476)
	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$InterpreterWorker.doInBackground(JythonConsole.java:464)
	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: Exception occurred on remote machine, error code=GENERAL_PROTOCOL_EXCEPTION [100]
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:338)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:308)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:265)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:888)
	at com.inductiveautomation.factorypmi.application.script.builtin.ClientSystemUtilities$SendRequestManager.invokeRequest(ClientSystemUtilities.java:622)
	at com.inductiveautomation.factorypmi.application.script.builtin.ClientSystemUtilities.sendRequestInternal(ClientSystemUtilities.java:576)
	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequestInternal(SystemUtilities.java:778)
	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:701)
	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:186)
	... 19 more
Caused by: com.inductiveautomation.metro.api.ex.RemoteException
com.inductiveautomation.ignition.common.GenericTransferrableException: Exception occurred on remote machine, error code=GENERAL_PROTOCOL_EXCEPTION [100]
	at com.inductiveautomation.metro.impl.protocol.handler.AckErrorHandler.handleMessage(AckErrorHandler.java:76)
	at com.inductiveautomation.metro.impl.protocol.websocket.WebSocketConnection$RunSend.run(WebSocketConnection.java:2286)
	... 3 more
Traceback (most recent call last):
  File "<buffer>", line 1, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:338)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:308)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:265)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:888)
	at com.inductiveautomation.factorypmi.application.script.builtin.ClientSystemUtilities$SendRequestManager.invokeRequest(ClientSystemUtilities.java:622)
	at com.inductiveautomation.factorypmi.application.script.builtin.ClientSystemUtilities.sendRequestInternal(ClientSystemUtilities.java:576)
	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequestInternal(SystemUtilities.java:778)
	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:701)
	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: Exception occurred on remote machine, error code=GENERAL_PROTOCOL_EXCEPTION [100]
>>>

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [November 13, 2018, 8:16pm UTC](https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815/2 "2018-11-13T20:16:05Z")

</div>

`com.inductiveautomation.ignition.common.GenericTransferrableException: Exception occurred on remote machine, error code=GENERAL_PROTOCOL_EXCEPTION [100]`

There should be an exception logged on the other remote machine - can you also get the code from there, and post it? If you put it inside triple-backticks, it will format cleanly:

````
```
error
```
````

---

<div class="post-metadata">

**Author:** ![ggross](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ggross/32/12668_2.png) [@ggross](https://forum.inductiveautomation.com/u/ggross)\
**Post date:** [November 14, 2018, 7:51pm UTC](https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815/3 "2018-11-14T19:51:43Z")

</div>

While I am seeing errors occur with Gateway Messaging, the specific error you are reporting I cannot reproduce. I have put in a bug for the error that I am seeing as it blocks all messages from working between versions.

As you mentioned that the connection from 7.9 to 8.0 was faulted, that is where I would start trying to resolve the issue. This connection does need to be established before this functionality will work when we do resolve the messaging issue. I just want to confirm that you approved the 7.9 system in the 8.0 gateway but going to the Configure -\> Gateway Network -\> Incoming Connections screen. If so, the logs from both servers as Paul requested will be needed to understand what might be going on.

---

<div class="post-metadata">

**Author:** ![kfortin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kfortin/32/4195_2.png) [@kfortin](https://forum.inductiveautomation.com/u/kfortin)\
**Post date:** [May 26, 2020, 5:57pm UTC](https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815/4 "2020-05-26T17:57:09Z")

</div>

Now seeing this issue when trying to use message handlers between a 8.0.13\_RC (b2020051415) gateway and a 7.9.13 ( b2019120915) gateway. Gateway Network connections show running on both gateways.

Appears to be accompanied by the following error on the 7.9 gateway…

```auto
WSConnection	26May2020 13:42:04	<- incoming local='ampi ignition prod 1-master' remote='nh ignition prod 1' method=onDataReceived: Exception thrown in application, error ack will be sent to remote
java.lang.NoSuchMethodException: com.inductiveautomation.ignition.gateway.gan.GanNodeDetailsService.getPlatformVersion()

at java.lang.Class.getMethod(Unknown Source)

at com.inductiveautomation.metro.impl.services.ServiceManagerImpl.invokeService(ServiceManagerImpl.java:395)

at com.inductiveautomation.metro.impl.services.ServiceManagerImpl$ServiceInvocationIntent.receive(ServiceManagerImpl.java:847)

at com.inductiveautomation.metro.impl.CentralManagerImpl.handleLocal(CentralManagerImpl.java:453)

at com.inductiveautomation.metro.impl.ConnectionWatcher.handle(ConnectionWatcher.java:419)

at com.inductiveautomation.metro.impl.ConnectionWatcher.handle(ConnectionWatcher.java:42)

at com.inductiveautomation.metro.impl.protocol.AbstractHttpConnection.forward(AbstractHttpConnection.java:1187)

at com.inductiveautomation.metro.impl.protocol.AbstractHttpConnection.onDataReceived(AbstractHttpConnection.java:1078)

at com.inductiveautomation.metro.impl.protocol.AbstractDataChannelServlet.doPost(AbstractDataChannelServlet.java:180)

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

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:837)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)

at org.eclipse.jetty.server.Server.handle(Server.java:518)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)

at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:186)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)

at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)

at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)

at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)

```

---

<div class="post-metadata">

**Author:** ![izidor.felicijan](https://avatars.discourse-cdn.com/v4/letter/i/c5a1d2/32.png) [@izidor.felicijan](https://forum.inductiveautomation.com/u/izidor.felicijan)\
**Post date:** [June 12, 2020, 1:11pm UTC](https://forum.inductiveautomation.com/t/bug-11643-message-handlers-error/20815/5 "2020-06-12T13:11:55Z")

</div>

Hello,

We experienced same issue when using system.util.sendRequest from Gateway running Ignition 7.9.14 to Gateway running Ignition 8.0.10.

Error on Gateway with version 7.9.14:

```auto
com.inductiveautomation.metro.api.ex.RemoteException: com.inductiveautomation.metro.api.ex.RemoteException: Exception occurred on remote machine, error code=GENERAL_PROTOCOL_EXCEPTION [100]

```

Log on Gateway with version 8.0.10:

```auto
java.io.StreamCorruptedException: invalid type code: FF

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.util.concurrent.ConcurrentHashMap.readObject(Unknown Source)

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 java.base/java.io.ObjectStreamClass.invokeReadObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at java.base/java.io.ObjectInputStream.readObject(Unknown Source)

at com.inductiveautomation.metro.impl.codecs.JavaSerializationCodec.decode(JavaSerializationCodec.java:41)

at com.inductiveautomation.metro.impl.CentralManagerImpl.handleLocal(CentralManagerImpl.java:432)

at com.inductiveautomation.metro.impl.ConnectionWatcher.handle(ConnectionWatcher.java:424)

at com.inductiveautomation.metro.impl.ConnectionWatcher.handle(ConnectionWatcher.java:43)

at com.inductiveautomation.metro.impl.protocol.websocket.WebSocketConnection.forward(WebSocketConnection.java:1407)

at com.inductiveautomation.metro.impl.protocol.websocket.WebSocketConnection.onDataReceived(WebSocketConnection.java:1298)

at com.inductiveautomation.metro.impl.protocol.websocket.servlet.DataChannelServlet.doPost(DataChannelServlet.java:225)

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.HandlerList.handle(HandlerList.java:59)

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.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:543)

at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:398)

at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)

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)

```

Can you please check it out and suggest what to do ?
