Prefab changes fileID and lose references randomly

Many prefabs of my randomly change their fileID or something and any reference to them become missing. It happens frequently and every time, I have to discard these changes or drag back references manually (which takes a lot of time). What’s happening here?

I updated from Unity 2018.2 to 2018.3 which added Nested Prefabs. Also, I use Sprite Atlas.
The affected prefabs contain both prefabs that use Prefab Variant and standalone prefabs.

Edit: This happened again today. I’ve made a git repository to show all the changes that caused the Missing references: NEW FILE · cdr9042/temporary@a71d2e4 · GitHub

I’m having the same problem since I updated from 2018.2 to 2018.3. I also updated from 2018.3 to 2019.1.0b3, and the issue remains. It seems to be similar to a supposedly “fixed” issue back in
September and October

The screenshot you’ve shown doesn’t show any issue. The fileID is an asset local identifier that is only valid inside that asset file. In the line 241 that Transform component gets its id within the file. In line 8 you have a modification entry that references that transform component. This can happen at any time your prefab is saved again. However this shouldn’t break external links to the prefab.

Actual cross-references are always done using the asset id which is a guid. That GUID should never change unless you loose the objects meta file and Unity has to reimport the asset. In this case it’s a completely new asset with a new GUID. So the screenshot you’ve shown shouldn’t affect cross-references unless you just partially applied those changes which would of course completely break the prefab files internal structure.

You may want to read the documentation about the Yaml File format:

The first line contains the string
“!u!1 &6” after the document marker.
The first number after the “!u!” part
indicates the class of the object (in
this case, it is a GameObject). The
number following the ampersand is an
object ID number which is unique
within the file, although the number
is assigned to each object
arbitrarily

So FileID references are always file local. If they change everywhere where they were used that shouldn’t be an issue at all. As i said, actual references between assets (which include prefabs) are done using the actual Asset GUID which in your case are for example:

f178577529d3d44419f76fd4226e823e
and
f6ba31f0d1662934b91b7d486549e8e9

I have to admit i haven’t looked into how they actually implemented nested prefabs. Maybe they have an issue there. Though depending on how many people actually use nested prefabs, it seems to work for most of them. So if you have issues i would guess you do something strange. Maybe an issue with your revision software.

If you have this issue again, can you manually search for one of the removed FileID in the newly saved prefab file? Unless the FileID has been reassigned to a different object (which is possible) there should be no reference to that FileID anymore. If there is a reference with that FileID but no object within that file with that ID there’s most likely a bug in Unity. If you found such a reference in your file, you may want to send that file along with a bug report and make sure you include the line numbers and a description of your findings.
.

I have the exact same problem! Any solutions?

I have the same issue with prefab variations during last 3 months. I have no upgrades of Unity - it happens randomly. FileID changing and references are set to null.

There are two refs are now shows as None (sometimes as missing)

After I fix an issue, I see that FileID is changed (why?):

The prefab variation

(prefab variation meta)

Exact same problem here. It is driving me nuts.