# \[IGN-14500\]8.3 vision report serialization error

**URL:** <https://forum.inductiveautomation.com/t/ign-14500-8-3-vision-report-serialization-error/111245>\
**Category:** Ignition\
**Tags:** perspective, vision, reporting, ignition83\
**Created:** [October 7, 2025, 4:17pm UTC](https://forum.inductiveautomation.com/t/ign-14500-8-3-vision-report-serialization-error/111245 "2025-10-07T16:17:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![fema](https://avatars.discourse-cdn.com/v4/letter/f/e19b73/32.png) [@fema](https://forum.inductiveautomation.com/u/fema)\
**Post date:** [October 7, 2025, 4:17pm UTC](https://forum.inductiveautomation.com/t/ign-14500-8-3-vision-report-serialization-error/111245/1 "2025-10-07T16:17:10Z")

</div>

Hi there,

I’ve run into a strange behavior with the report viewer component that didn’t happen in version 8.1. Here's the setup:

I have a window with a report viewer component. The report points to a valid report path and includes a dataset parameter called "data".

Now, here’s what’s happening:

a) If I set a default value for the data (dataset) parameter directly in the report builder, for example using [default]dummy\_data with the correct structure and data, everything works fine and the report displays as expected in the viewer.

b) The moment I bind the parameter in the report viewer at runtime, again using [default]dummy\_data, I get the following error:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/a/5a24ce1c03c89301a68b7f1f31f1c9a3ff29e556.png)

Any idea what might be causing this? It seems like the runtime binding isn’t being picked up correctly, even though this used to work in 8.1.

Another thing while searching the forum I stumbled upon this topic and I don’t know if it can have anything to do with my issue:

> [@Function to export from Perspective Table to excel](https://forum.inductiveautomation.com/t/function-to-export-from-perspective-table-to-excel/106870/13):
>
> Thank you all for your responses. All the arguments have been very helpful.

Below the full error message:

7:56:48.259 [AWT-EventQueue-0] WARN Vision.reporting.Components.Viewer -- ReportLoader task could not be completed.

> `java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializationException: Fallback serialization failed`  
> `at java.base/java.util.concurrent.FutureTask.report(Unknown Source)`  
> `at java.base/java.util.concurrent.FutureTask.get(Unknown Source)`  
> `at java.desktop/javax.swing.SwingWorker.get(Unknown Source)`  
> `at com.inductiveautomation.reporting.components.ReportViewer$ReportLoader.done(ReportViewer.java:807)`  
> `at java.desktop/javax.swing.SwingWorker$5.run(Unknown Source)`  
> `at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)`  
> `at java.desktop/sun.swing.AccumulativeRunnable.run(Unknown Source)`  
> `at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)`  
> `at java.desktop/javax.swing.Timer.fireActionPerformed(Unknown Source)`  
> `at java.desktop/javax.swing.Timer$DoPostEvent.run(Unknown Source)`  
> `at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)`  
> `at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)`  
> `at java.desktop/java.awt.EventQueue$4.run(Unknown Source)`  
> `at java.desktop/java.awt.EventQueue$4.run(Unknown Source)`  
> `at java.base/java.security.AccessController.doPrivileged(Unknown Source)`  
> `at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)`  
> `at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)`  
> `at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)`  
> `at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)`  
> `at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)`  
> `at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)`  
> `at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)`  
> `at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)`  
> `Caused by: com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializationException: Fallback serialization failed`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters.fallbackSerializer(BuiltinAdapters.java:398)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:119)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.protoEncode(ProtoRpcSerializer.java:340)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.protoEncode(ProtoRpcSerializer.java:335)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters$8.encode(BuiltinAdapters.java:220)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters$8.encode(BuiltinAdapters.java:215)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializerBuilder.lambda$addAdapter$9(ProtoSerializerBuilder.java:225)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializerBuilder$SerializationDelegate.encode(ProtoSerializerBuilder.java:325)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeObject(ProtoRpcSerializer.java:171)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:114)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.protoEncode(ProtoRpcSerializer.java:340)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.protoEncode(ProtoRpcSerializer.java:335)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters$10.lambda$encode$0(BuiltinAdapters.java:266)`  
> `at java.base/java.util.HashMap.forEach(Unknown Source)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters$10.encode(BuiltinAdapters.java:264)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters$10.encode(BuiltinAdapters.java:259)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializerBuilder.lambda$addAdapter$9(ProtoSerializerBuilder.java:225)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializerBuilder$SerializationDelegate.encode(ProtoSerializerBuilder.java:325)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeObject(ProtoRpcSerializer.java:171)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.encodeValue(ProtoRpcSerializer.java:114)`  
> `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:331)`  
> `at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeRaw(GatewayInterface.java:363)`  
> `at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:328)`  
> `at com.inductiveautomation.ignition.client.gateway_interface.GatewayConnection$Rpc$RpcInvocationHandler.invoke(GatewayConnection.java:335)`  
> `at jdk.proxy2/jdk.proxy2.$Proxy13.getReportData(Unknown Source)`  
> `at com.inductiveautomation.reporting.components.ReportViewer$ReportLoader.doInBackground(ReportViewer.java:775)`  
> `at com.inductiveautomation.reporting.components.ReportViewer$ReportLoader.doInBackground(ReportViewer.java:711)`  
> `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.UnsupportedOperationException: Attempted to serialize java.lang.Class: java.lang.Integer. Forgot to register a type adapter?`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:76)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:72)`  
> `at com.inductiveautomation.ignition.common.gson.TypeAdapter$1.write(TypeAdapter.java:196)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)`  
> `at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:368)`  
> `at com.inductiveautomation.ignition.common.gson.Gson.toJson(Gson.java:842)`  
> `at com.inductiveautomation.ignition.common.gson.Gson.toJsonTree(Gson.java:712)`  
> `at com.inductiveautomation.ignition.common.gson.Gson.toJsonTree(Gson.java:689)`  
> `at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters.fallbackSerializer(BuiltinAdapters.java:395)`  
> `... 34 common frames omitted`

---

<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:** [October 7, 2025, 5:27pm UTC](https://forum.inductiveautomation.com/t/ign-14500-8-3-vision-report-serialization-error/111245/2 "2025-10-07T17:27:24Z")

</div>

Thanks for the report. I was able to mock this up internally; it's not actually the binding it's that you're passing a dataset in as a 'live' parameter value instead of picking it up from a default.

As a temporary workaround, instead of a dataset parameter you could pass a tag path or other reference and use a script data source to read that tag and assign it to the same parameter value.
