Materials turn pink between different systems

My office currently runs into an issue where materials are appearing pink when they are passed between the artists and the devs. The artists model and texture primarily in 3DS Max, and even after fixing the materials in unity on their own systems, when they are passed to the devs the materials still unlink from the models. We have verified that we are using the same render pipeline (URP) and the same shaders. We have even exported the fixed models as unity packages for the devs to pull in but the materials still break. Are there any other settings we might be overlooking that need to match between the different computers?

This sounds like a .meta file out of sync issue. But it would help to know more precisely what you mean by “unlink”. Does it say “missing reference”? Or is the reference simply set to “None”? Or something else?

Check your source control system to see whether .meta files of the problematic materials or the objects/components that use the material happen keep being pushed to source control.

If so, inspect some of these .meta file changes and see if they appear to be changing their GUID entries.

In that case: fix all of these issues on one system, push the changes, force EVERYONE to sync right away and then check if these issues go away.

I have not seen .meta out of sync with materials but other assets, typically textures, meshes, animations. They occur whenever someone (typically artists) adds a new asset to the project’s Assets tree but does not allow Unity to import that asset by opening or alt+tabbing into the open editor.

If anyone checks in any file in the Assets tree where there is no accompanying .meta file, then everyone who pulls this change will have a .meta file generated with a unique GUID for that asset for their system. Thus these broken references keep being pushed around.

Note that while you see this appearing in a material, it could also be related assets that have this .meta file problem (like I said: textures, meshes - typically any asset that is normally created outside of Unity but it could also appear for assets like prefabs that were manually copied from one project to another).