Search Issue Tracker

Fixed in 2020.1.X

Votes

0

Found in

Issue ID

1214122

Regression

No

Investigate why .meta files are sometimes not parsed right

Asset - Database

-

The FileHasher.cpp emits an error whenever particular entries in a .meta file are mistaken for something which is not a Scalar value.

It has been noticed that when a .meta file ends with two spaces (the YAML standard for indentation) it sometimes mistakes the entry above it as being a mapping node.

One example can be found in this file:

https://github.cds.internal.unity3d.com/unity/xr.sdk.magicleap/blob/master/Packages/com.unity.xr.magicleap/Runtime/Compatibility.cs.meta

Where assetBundleVariant: is followed by a new line, and then 2 space characters (ascii value 32) before reaching the EOF marker.

Steps to reproduce:
- Create a new Unity project
- Create a new asset (a script for example)
- Close the project
- Find the location where the asset was created, and modify the matching *.meta file in a text editor
- Modify the end of the file so the last line is a line with 2 spaces, preceded by the "assetBundleVariant: " line
- Re-open the the project in Unity
- Observe that in approximately 1 of every 20 attempts to reproduce, an exception will appear in the console:
Unable to parse file Assets/NewBehaviourScript.cs.meta: [Parser Failure at line 13: Expect ':' between key and value within mapping]

  1. Resolution Note (fix version 2020.1):

    Fixed with 2020.2.0a12

Add comment

Log in to post comment