No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap

I'm trying to call a function on another gateway (system.tag.query) via system.util.sendRequest due to a bug (in 8.3.3?) where trying to do this on the local gateway on a remote tag provider and including alarms in the query goes out on a timeout (i've tried setting it to 10mins).

However now I'm running into this error:

Java Traceback:
Traceback (most recent call last):
  File "<input>", line 62, in <module>
  File "<module:shared.tag>", line 19, in backendTagQuery
	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:815)

	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.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'


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

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

	at org.python.pycode._pyx70.backendTagQuery$3(<module:shared.tag>:19)

	at org.python.pycode._pyx70.call_function(<module:shared.tag>)

	at org.python.core.PyTableCode.call(PyTableCode.java:173)

	at org.python.core.PyBaseCode.call(PyBaseCode.java:306)

	at org.python.core.PyBaseCode.call(PyBaseCode.java:158)

	at org.python.core.PyFunction.__call__(PyFunction.java:437)

	at org.python.pycode._pyx69.f$0(<input>:106)

	at org.python.pycode._pyx69.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:639)

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

	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.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:815)

	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)

	... 24 more

Caused by: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

	at java.util.concurrent.CompletableFuture.reportGet(:0)

	at java.util.concurrent.CompletableFuture.get(:0)

	at com.inductiveautomation.ignition.common.script.message.SendRequestHandle.get(SendRequestHandle.java:63)

	at com.inductiveautomation.ignition.gateway.script.rpc.ScriptMessagingRpcImpl.dispatchRequest(ScriptMessagingRpcImpl.java:117)

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(:0)

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(:0)

	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(:0)

	at java.lang.reflect.Method.invoke(:0)

	at com.inductiveautomation.ignition.gateway.rpc.RpcDelegate$DelegateRpcHandler.handle(RpcDelegate.java:275)

	at com.inductiveautomation.ignition.gateway.rpc.RpcRoutes.lambda$handle$1(RpcRoutes.java:209)

	at com.inductiveautomation.ignition.gateway.rpc.RpcRoutes.safelyHandle(RpcRoutes.java:225)

	at com.inductiveautomation.ignition.gateway.rpc.RpcRoutes.handle(RpcRoutes.java:209)

	at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:355)

	at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupImpl.service(RouteGroupImpl.java:117)

	at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupCollectionServlet.serviceInternal(RouteGroupCollectionServlet.java:152)

	at com.inductiveautomation.ignition.gateway.dataroutes.AbstractRouteGroupServlet.service(AbstractRouteGroupServlet.java:40)

	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)

	at org.eclipse.jetty.ee10.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1385)

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

	at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1622)

	at com.inductiveautomation.catapult.filters.GatewayFilter.doFilter(GatewayFilter.java:119)

	at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)

	at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)

	at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

	at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1555)

	at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:823)

	at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:440)

	at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:470)

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

	at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:717)

	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1071)

	at org.eclipse.jetty.rewrite.handler.RewriteHandler$LastRuleHandler.handle(RewriteHandler.java:159)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:143)

	at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:805)

	at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:805)

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

	at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:677)

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

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

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

	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)

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

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)

	at java.lang.Thread.run(:0)

Caused by: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

	at com.inductiveautomation.metro.impl.protoserializers.ProtobufUtil.packAnyToList(ProtobufUtil.java:186)

	at com.inductiveautomation.metro.impl.protoserializers.generic.collection.ListSerializer.toProtobufMessage(ListSerializer.java:46)

	at com.inductiveautomation.metro.impl.protoserializers.generic.collection.ListSerializer.toProtobufMessage(ListSerializer.java:21)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:67)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:23)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:67)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:23)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:67)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:23)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.PyDictionarySerializer.toProtobufMessage(PyDictionarySerializer.java:42)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.PyObjectSerializer.toProtobufMessage(PyObjectSerializer.java:95)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.RemoteScriptMsgSerializer.toProtobufMessage(RemoteScriptMsgSerializer.java:43)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.RemoteScriptMsgSerializer.toProtobufMessage(RemoteScriptMsgSerializer.java:13)

	at com.inductiveautomation.metro.impl.protoserializers.ServerMessageSerializer.toProtobufMessage(ServerMessageSerializer.java:47)

	at com.inductiveautomation.metro.impl.transport.ProtobufDirectAdapter.adaptData(ProtobufDirectAdapter.java:79)

	at com.inductiveautomation.metro.impl.transport.ProtobufDirectAdapter.adaptData(ProtobufDirectAdapter.java:29)

	at com.inductiveautomation.metro.impl.transport.AbstractTransportAdapter.handle(AbstractTransportAdapter.java:59)

	at com.inductiveautomation.metro.impl.MessageSendManager.sendNext(MessageSendManager.java:233)

	at java.util.concurrent.Executors$RunnableAdapter.call(:0)

	at java.util.concurrent.FutureTask.run(:0)

	at java.util.concurrent.ThreadPoolExecutor.runWorker(:0)

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(:0)

	... 1 more

Traceback (most recent call last):
  File "<input>", line 62, in <module>
  File "<module:shared.tag>", line 19, in backendTagQuery
	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:815)

	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.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'
>>> 
Java Traceback:
Traceback (most recent call last):
  File "<input>", line 62, in <module>
  File "<module:shared.tag>", line 19, in backendTagQuery
	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:815)

	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.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'


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

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

	at org.python.pycode._pyx74.backendTagQuery$3(<module:shared.tag>:19)

	at org.python.pycode._pyx74.call_function(<module:shared.tag>)

	at org.python.core.PyTableCode.call(PyTableCode.java:173)

	at org.python.core.PyBaseCode.call(PyBaseCode.java:306)

	at org.python.core.PyBaseCode.call(PyBaseCode.java:158)

	at org.python.core.PyFunction.__call__(PyFunction.java:437)

	at org.python.pycode._pyx73.f$0(<input>:106)

	at org.python.pycode._pyx73.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:639)

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

	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.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:815)

	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)

	... 24 more

Caused by: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

	at java.util.concurrent.CompletableFuture.reportGet(:0)

	at java.util.concurrent.CompletableFuture.get(:0)

	at com.inductiveautomation.ignition.common.script.message.SendRequestHandle.get(SendRequestHandle.java:63)

	at com.inductiveautomation.ignition.gateway.script.rpc.ScriptMessagingRpcImpl.dispatchRequest(ScriptMessagingRpcImpl.java:117)

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(:0)

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(:0)

	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(:0)

	at java.lang.reflect.Method.invoke(:0)

	at com.inductiveautomation.ignition.gateway.rpc.RpcDelegate$DelegateRpcHandler.handle(RpcDelegate.java:275)

	at com.inductiveautomation.ignition.gateway.rpc.RpcRoutes.lambda$handle$1(RpcRoutes.java:209)

	at com.inductiveautomation.ignition.gateway.rpc.RpcRoutes.safelyHandle(RpcRoutes.java:225)

	at com.inductiveautomation.ignition.gateway.rpc.RpcRoutes.handle(RpcRoutes.java:209)

	at com.inductiveautomation.ignition.gateway.dataroutes.Route.service(Route.java:355)

	at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupImpl.service(RouteGroupImpl.java:117)

	at com.inductiveautomation.ignition.gateway.dataroutes.RouteGroupCollectionServlet.serviceInternal(RouteGroupCollectionServlet.java:152)

	at com.inductiveautomation.ignition.gateway.dataroutes.AbstractRouteGroupServlet.service(AbstractRouteGroupServlet.java:40)

	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)

	at org.eclipse.jetty.ee10.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1385)

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

	at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1622)

	at com.inductiveautomation.catapult.filters.GatewayFilter.doFilter(GatewayFilter.java:119)

	at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)

	at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)

	at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)

	at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1555)

	at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:823)

	at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:440)

	at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:470)

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

	at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:717)

	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1071)

	at org.eclipse.jetty.rewrite.handler.RewriteHandler$LastRuleHandler.handle(RewriteHandler.java:159)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.HeaderPatternRule$1.handle(HeaderPatternRule.java:89)

	at org.eclipse.jetty.rewrite.handler.Rule$Handler.handle(Rule.java:108)

	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:143)

	at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:805)

	at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:805)

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

	at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:677)

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

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

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

	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)

	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)

	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)

	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)

	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)

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

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)

	at java.lang.Thread.run(:0)

Caused by: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

	at com.inductiveautomation.metro.impl.protoserializers.ProtobufUtil.packAnyToList(ProtobufUtil.java:186)

	at com.inductiveautomation.metro.impl.protoserializers.generic.collection.ListSerializer.toProtobufMessage(ListSerializer.java:46)

	at com.inductiveautomation.metro.impl.protoserializers.generic.collection.ListSerializer.toProtobufMessage(ListSerializer.java:21)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:67)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:23)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:67)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:23)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:67)

	at com.inductiveautomation.metro.impl.protoserializers.generic.MapSerializer.toProtobufMessage(MapSerializer.java:23)

	at com.inductiveautomation.metro.impl.protoserializers.AnyObjectSerializer.toProtobufMessage(AnyObjectSerializer.java:69)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.PyDictionarySerializer.toProtobufMessage(PyDictionarySerializer.java:42)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.PyObjectSerializer.toProtobufMessage(PyObjectSerializer.java:95)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.RemoteScriptMsgSerializer.toProtobufMessage(RemoteScriptMsgSerializer.java:43)

	at com.inductiveautomation.ignition.gateway.gan.protoserializers.RemoteScriptMsgSerializer.toProtobufMessage(RemoteScriptMsgSerializer.java:13)

	at com.inductiveautomation.metro.impl.protoserializers.ServerMessageSerializer.toProtobufMessage(ServerMessageSerializer.java:47)

	at com.inductiveautomation.metro.impl.transport.ProtobufDirectAdapter.adaptData(ProtobufDirectAdapter.java:79)

	at com.inductiveautomation.metro.impl.transport.ProtobufDirectAdapter.adaptData(ProtobufDirectAdapter.java:29)

	at com.inductiveautomation.metro.impl.transport.AbstractTransportAdapter.handle(AbstractTransportAdapter.java:59)

	at com.inductiveautomation.metro.impl.MessageSendManager.sendNext(MessageSendManager.java:233)

	at java.util.concurrent.Executors$RunnableAdapter.call(:0)

	at java.util.concurrent.FutureTask.run(:0)

	at java.util.concurrent.ThreadPoolExecutor.runWorker(:0)

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(:0)

	... 1 more

Traceback (most recent call last):
  File "<input>", line 62, in <module>
  File "<module:shared.tag>", line 19, in backendTagQuery
	at java.base/java.util.concurrent.CompletableFuture.reportGet(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

	at com.inductiveautomation.ignition.common.script.builtin.SystemUtilities.sendRequest(SystemUtilities.java:815)

	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.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoWrappedException: com.inductiveautomation.ignition.common.model.exception.ProtobufSerializationException: No Protobuf serializer found for collection item class 'java.util.Collections$UnmodifiableMap'

This is my script:

def backendTagQuery(gwNumber, provider, query, limit=None, continuation=None):
	return system.util.sendRequest(  ##<--- This is line 19
		project="Tags",
		messageHandler="tagQuery",
		payload={'provider': provider, "query": query, "limit": limit, "continuation": continuation},
		remoteServer="IGN-GW{}-Backend".format(gwNumber),
		timeoutSec=300
	)

This is the "query" being provided:

query = {
    "options": {
        "includeUdtMembers": True,
        "includeUdtDefinitions": True
    },
    "condition": {
        "path": "SOLAR/*",
        "attributes": {
            "values": [],
            "requireAll": True
        },
        "properties": {
            "op": "Or",
            "conditions": [
                {
                    "op": "And",
                    "conditions": [
                        {
                            "prop": "tagType",
                            "comp": "Equal",
                            "value": "AtomicTag"
                        }
                    ]
                }
            ]
        }
    },
    "returnProperties": [
    	"alarms",
        "scaleFactor",
        "scaleMode",
        "opcItemPath",
        "dataType",
        "engHigh",
        "tooltip",
        "historyEnabled",
        "engLow",
        "engUnit"
    ]
}

More investigation.
It doesn't like the query param. If I set that to {} it "works".
It looks like it doesn't like the query["condition"]["properties"]["conditions"] list. If I remove this, it goes through.

As a workaround, you could json encode the query and decode in the remote handler. Don't be surprised if you get similar (but other) protobuf errors with the return value.