simonoliver / UnityFigmaBridge

Easily bring your Figma Documents, Components, Assets and Prototypes to Unity
MIT License
367 stars 37 forks source link

Problem decoding Figma document Error [BUG] #29

Closed InvivoLuke closed 12 months ago

InvivoLuke commented 12 months ago

Describe the bug I get the following error when trying to Sync Document

Error downloading Figma document - Check your personal access key and document url are correct System.Exception: Problem decoding Figma document JSON Newtonsoft.Json.JsonSerializationException: Error converting value "TABLE" to type 'UnityFigmaBridge.Editor.FigmaApi.NodeType'. Path 'document.children[0].children[2].children[7].type', line 1, position 23813. ---> System.ArgumentException: Requested value 'TABLE' was not found. at Newtonsoft.Json.Utilities.EnumUtils.ParseEnum (System.Type enumType, Newtonsoft.Json.Serialization.NamingStrategy namingStrategy, System.String value, System.Boolean disallowNumber) [0x001e9] in /root/repo/Src/Newtonsoft.Json/Utilities/EnumUtils.cs:370 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType (Newtonsoft.Json.JsonReader reader, System.Object value, System.Globalization.CultureInfo culture, Newtonsoft.Json.Serialization.JsonContract contract, System.Type targetType) [0x00054] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:970

To Reproduce Steps to reproduce the behavior:

  1. Set Document URL, and get 'Valid Figma Document URL'
  2. Set my PAT.
  3. Click 'Sync Document'
  4. See error

Version

InvivoLuke commented 12 months ago

here's the rest of the stack trace:

--- End of inner exception stack trace --- at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType (Newtonsoft.Json.JsonReader reader, System.Object value, System.Globalization.CultureInfo culture, Newtonsoft.Json.Serialization.JsonContract contract, System.Type targetType) [0x00127] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1005 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x000d4] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:333 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x0005c] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1052 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00280] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:2433 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00161] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:502 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:309 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList (System.Collections.IList list, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonArrayContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x00173] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1712 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x000dc] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:886 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:311 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x0005c] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1052 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00280] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:2433 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00161] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:502 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:309 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList (System.Collections.IList list, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonArrayContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x00173] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1712 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x000dc] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:886 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:311 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x0005c] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1052 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00280] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:2433 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00161] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:502 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:309 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList (System.Collections.IList list, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonArrayContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x00173] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1712 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x000dc] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:886 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:311 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x0005c] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:1052 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00280] in /root/repo/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:2433 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember,

simonoliver commented 12 months ago

Thanks for the report. Latest commit should fix this (just update in package manager if you added as a GIT repository). I see this is a FigJam object type. Out of curiosity - did you copy and paste from a FigJam document to a Figma doc, or are you trying to import the FigJam document itself?

InvivoLuke commented 12 months ago

Thanks Simon!

That seem to have fixed the original error, however I'm seeing additional ones in the console..

Screenshot 2023-07-21 115050

I'll do another update once it finished importing the document.

As far as using FigJam.. I'm not entirely sure, but I can reach out to the UX team that prepared the document -- maybe they pasted content from FigJam?

simonoliver commented 12 months ago

Glad it gets a little further. If it's a big document you might run into issues - you are welcome to share the doc if you run into issues, just drop me a DM on Twitter , Mastodon or Discord (simono)

simonoliver commented 12 months ago

I'm going to close this issue as it related to the missing node types. Please do open another issue if you find a different bug.