# \[Bug-13619\] View crashing - 'Unable to deserialize resource'

**URL:** <https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241>\
**Category:** Ignition Early Access\
**Created:** [April 18, 2019, 7:56pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241 "2019-04-18T19:56:38Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![alan\_pereira](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/alan_pereira/32/79668_2.png) [@alan\_pereira](https://forum.inductiveautomation.com/u/alan_pereira)\
**Post date:** [April 18, 2019, 7:56pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/1 "2019-04-18T19:56:38Z")

</div>

Today I spent hours remaking a view because something was crashing it. The bad thing is that once it crashed, I couldn't open it again, regardless of saving it, restarting, etc. Once it's saved, it won't parse the file again. I found out that it crashes when I made some parameters as output or bidirectional. The parameters that were crashing had spaces, so I'm assuming this is the main cause.

This is easily reproducible.  
1 - Create a view  
2 - Add a parameter that has a space in it  
3 - Make it output or bidirectional.  
4 - Save it. It's gone.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/e/e217b21c1368c4832908042649913939b9483eab.png)

Details:

> JsonSyntaxException: java.lang.IllegalStateException: Duplicate key params.This name (attempted merging values com.inductiveautomation.perspective.common.config.PropertyConfig@348c0176 and com.inductiveautomation.perspective.common.config.PropertyConfig@6a05ffe5)  
> caused by IllegalStateException: Duplicate key params.This name (attempted merging values com.inductiveautomation.perspective.common.config.PropertyConfig@348c0176 and com.inductiveautomation.perspective.common.config.PropertyConfig@6a05ffe5)
> 
> Ignition v8.0.0 (b2019040718)  
> Java: Azul Systems, Inc. 11.0.2

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [April 18, 2019, 8:11pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/2 "2019-04-18T20:11:18Z")

</div>

You’re absolutely right - an outgoing or bi-directional parameter with a space in the namewill break a View.

If you need to repair the View, you can directly modify the view.json file on the Gateway and remove the offending space from the key. You’ll need to restart your Designer after doing so.

---

<div class="post-metadata">

**Author:** ![awalker](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/awalker/32/6874_2.png) [@awalker](https://forum.inductiveautomation.com/u/awalker)\
**Post date:** [July 16, 2019, 4:03pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/3 "2019-07-16T16:03:37Z")

</div>

This issue was fixed in the 8.0.3 Nightly build that was uploaded yesterday (7/15).

---

<div class="post-metadata">

**Author:** ![Kasa.Jason\_K](https://avatars.discourse-cdn.com/v4/letter/k/85f322/32.png) [@Kasa.Jason\_K](https://forum.inductiveautomation.com/u/Kasa.Jason_K)\
**Post date:** [July 16, 2019, 5:09pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/4 "2019-07-16T17:09:15Z")

</div>

I had a view break after updating to the version you mentioned above. I get the error “Unable to deserialize resource ViewName”.

I think it may have something to do with the view containing a carousel component. Below is the full error:

```auto
> com.inductiveautomation.ignition.common.gson.JsonSyntaxException: java.lang.IllegalStateException: Duplicate key props.views.viewParams.perspectiveNdx (attempted merging values com.inductiveautomation.perspective.common.config.PropertyConfig@b02c8d14 and com.inductiveautomation.perspective.common.config.PropertyConfig@b02c8d14)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
> at com.inductiveautomation.ignition.common.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:63)
> at com.inductiveautomation.ignition.common.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
> at com.inductiveautomation.ignition.common.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
> at com.inductiveautomation.ignition.common.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
> at com.inductiveautomation.ignition.common.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:63)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
> at com.inductiveautomation.ignition.common.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:63)
> at com.inductiveautomation.ignition.common.gson.Gson.fromJson(Gson.java:927)
> at com.inductiveautomation.ignition.common.gson.Gson.fromJson(Gson.java:865)
> at com.inductiveautomation.perspective.common.config.ViewConfig.fromProjectResource(ViewConfig.java:98)
> at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.deserialize(ViewResourceEditor.java:186)
> at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.deserialize(ViewResourceEditor.java:59)
> at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.loadResource(ResourceEditor.java:56)
> at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.lambda$new$0(ResourceEditor.java:37)
> at java.base/java.util.Optional.ifPresent(Unknown Source)
> at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.<init>(ResourceEditor.java:35)
> at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.<init>(ViewResourceEditor.java:101)
> at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.newResourceEditor(ViewWorkspace.java:304)
> at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:224)
> at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceNode.open(ResourceNode.java:125)
> at com.inductiveautomation.ignition.designer.navtree.model.AbstractResourceNavTreeNode.onDoubleClick(AbstractResourceNavTreeNode.java:267)
> at com.inductiveautomation.ignition.designer.navtree.NavTreePanel$MouseListener.lambda$mousePressed$0(NavTreePanel.java:655)
> 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(Native Method)
> 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: java.lang.IllegalStateException: Duplicate key props.views.viewParams.perspectiveNdx (attempted merging values com.inductiveautomation.perspective.common.config.PropertyConfig@b02c8d14 and com.inductiveautomation.perspective.common.config.PropertyConfig@b02c8d14)
> at java.base/java.util.stream.Collectors.duplicateKeyException(Unknown Source)
> at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Unknown Source)
> at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source)
> at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
> at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
> at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
> at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
> at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
> at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
> at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
> at com.inductiveautomation.perspective.common.config.PropertyConfigCollection$GsonAdapter.deserialize(PropertyConfigCollection.java:82)
> at com.inductiveautomation.perspective.common.config.PropertyConfigCollection$GsonAdapter.deserialize(PropertyConfigCollection.java:74)
> at com.inductiveautomation.ignition.common.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
> at com.inductiveautomation.ignition.common.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read

```

(ReflectiveTypeAdapterFactory.java:222)[view.json](https://us1.discourse-cdn.com/inductiveautomation/original/2X/3/3ef74d585c93c90903b5062b038d6321c032da39.json) (18.7 KB)

---

<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:** [July 16, 2019, 5:26pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/5 "2019-07-16T17:26:24Z")

</div>

That issue is fixed in the latest nightly build, and in the 8.0.3 RC that should be out within a few days.

---

<div class="post-metadata">

**Author:** ![Kasa.Jason\_K](https://avatars.discourse-cdn.com/v4/letter/k/85f322/32.png) [@Kasa.Jason\_K](https://forum.inductiveautomation.com/u/Kasa.Jason_K)\
**Post date:** [July 16, 2019, 5:55pm UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/6 "2019-07-16T17:55:41Z")

</div>

It seems like I can no longer add bindings to viewParams within a subview of a carousel, is this by design?

https:/uploads/iatesting/original/2X/f/f29d767f4ac3333a8078cbb9f170c6c41a944f5c.mp4

---

<div class="post-metadata">

**Author:** ![Jesse\_Dale\_Gimenez](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jesse_dale_gimenez/32/68763_2.png) [@Jesse\_Dale\_Gimenez](https://forum.inductiveautomation.com/u/Jesse_Dale_Gimenez)\
**Post date:** [April 2, 2025, 2:49am UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/7 "2025-04-02T02:49:02Z")

</div>

![unable to deserialize](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/0/80dbe617356c49a1606762ba546e224c3d385d94.jpeg)  
Still experiencing this bug

---

<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:** [April 2, 2025, 11:23am UTC](https://forum.inductiveautomation.com/t/bug-13619-view-crashing-unable-to-deserialize-resource/24241/8 "2025-04-02T11:23:54Z")

</div>

1. That is a pretty generic error message. We would need the **Details** to even know if your problem is related to the problem in this very old post.

2. There's been a lot of bugs fixed between v8.1.30 and now. Does this problem show up in the current version?

(You should start a new post.)
