# \[IGN-15832\]System.perspective.download fails to download larger file

**URL:** <https://forum.inductiveautomation.com/t/ign-15832-system-perspective-download-fails-to-download-larger-file/114795>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [March 31, 2026, 6:38am UTC](https://forum.inductiveautomation.com/t/ign-15832-system-perspective-download-fails-to-download-larger-file/114795 "2026-03-31T06:38:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [March 31, 2026, 6:38am UTC](https://forum.inductiveautomation.com/t/ign-15832-system-perspective-download-fails-to-download-larger-file/114795/1 "2026-03-31T06:38:45Z")

</div>

I’ve got a script to generate an excel file from a Perspective Table data set, and when I have 158 rows, the download is ok. When I have 192 rows, I get the following error and I don’t get a download:

```python
16:58:56.132 [connection-worker-7] WARN com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager -- Failed to deserialize push notification payload for listener 'com.inductiveautomation.perspective.show-error'
com.inductiveautomation.ignition.common.rpc.proto.ProtoSerializationException: Unable to deserialize com.inductiveautomation.perspective.common.messages.ErrorNotification; no deserializer found
	at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters.fallbackDeserializer(BuiltinAdapters.java:447)
	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.decodeValue(ProtoRpcSerializer.java:257)
	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.decodeValue(ProtoRpcSerializer.java:242)
	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.protoDecode(ProtoRpcSerializer.java:363)
	at com.inductiveautomation.ignition.common.rpc.proto.ProtoRpcSerializer.lambda$asPushNotificationDeserializer$1(ProtoRpcSerializer.java:446)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection.fireInternal(AbstractGatewayConnection.java:3004)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection.firePushNotificationInternal(AbstractGatewayConnection.java:2978)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection.lambda$firePushNotifications$23(AbstractGatewayConnection.java:3034)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source)
	at com.inductiveautomation.ignition.common.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:237)
	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.ClassNotFoundException: com.inductiveautomation.perspective.common.messages.ErrorNotification
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Unknown Source)
	at org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:1069)
	at org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:1103)
	at com.inductiveautomation.ignition.common.rpc.proto.BuiltinAdapters.fallbackDeserializer(BuiltinAdapters.java:442)
	... 12 common frames omitted

```

The most relevant part of the script is this:

```python
	exportData = system.dataset.toDataset(headersLayman, exportData)
	
	spreadsheet = system.dataset.toExcel(True, [exportData])
	
	fileName = 'AuditLogExport_{}.xlsx'.format(system.date.format(system.date.now(), "yyyy-MM-dd HH:mm:ss"))
	system.perspective.download(fileName, spreadsheet)

```

I have error handling around my code and it prints any errors to the console, but this one doesn’t show up in the browser. I saw this appear in the Designer console when I tested it.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [March 31, 2026, 6:47am UTC](https://forum.inductiveautomation.com/t/ign-15832-system-perspective-download-fails-to-download-larger-file/114795/2 "2026-03-31T06:47:49Z")

</div>

Nevermind, it was a java error:

```python
INFO Perspective.Designer.Workspace -- java.lang.IllegalArgumentException: The maximum length of cell contents (text) is 32767 characters

```

---

<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:** [March 31, 2026, 4:34pm UTC](https://forum.inductiveautomation.com/t/ign-15832-system-perspective-download-fails-to-download-larger-file/114795/3 "2026-03-31T16:34:57Z")

</div>

> [@nminchin](#):
>
> `Caused by: java.lang.ClassNotFoundException: com.inductiveautomation.perspective.common.messages.ErrorNotification`

For what it's worth, this shouldn't be happening.

Is:

> [@nminchin](#):
>
> `INFO Perspective.Designer.Workspace -- java.lang.IllegalArgumentException: The maximum length of cell contents (text) is 32767 characters`

Something you saw in the designer's logs (eventually?) or did you have to go to the gateway to see it?

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [March 31, 2026, 8:21pm UTC](https://forum.inductiveautomation.com/t/ign-15832-system-perspective-download-fails-to-download-larger-file/114795/4 "2026-03-31T20:21:58Z")

</div>

I added error handling for Java Throwable and then the more useful error showed up.

I did also think that that first exception looked a bit suspect…
