The blend file data shows it was written using Blender v3.0.42. And yet when opening the file with that version, the MixRGB nodes in your materials are shown as being undefined:
This happens when a file was done on Blender versions from 3.4 and above, and then open in an older version of Blender from before 3.4. The issue with that being that the node was changed in version 3.4:
The "MixRGB" node for Shader and Geometry Nodes is converted to the new "Mix Node" on loading. Files saved with the new node are not forward compatible with older versions of Blender (bfa0ee13d5).
Note that it is possible to upgrade a file's mix node to a newer version, but not to downgrade. So the issue occurs only when opening newer files with older versions than 3.4.
If you have a version of your file that wasn't saved with a Blender version <3.4, you could use that. Otherwise, you have to go through each of your materials and replace the undefined nodes by the available Mix node.
I made a script that should theoretically be able to do it in one click, but it will not recover the mix type nor input values. It will only preserve the old socket color inputs/output connections, and assuming you used most of these mixRGB as multipliers between albedo and ambient occlusion: it arbitrarily sets the mix nodes to multiply and the factor at 1. You can change that if you want another set of... Settings... It's below the "EXTRA OPTION" comment.
But if you don't have most of your nodes doing that albedo multiply AO, then perhaps a more neutral script that just connects all nodes as is and leaves unconnected values at default is better, in which case see this other answer.
import bpy
for material in bpy.data.materials:
if not material.use_nodes:
continue
node_tree = material.node_tree
nodes = node_tree.nodes
fail_state = False
for node in nodes:
if node.name == "Mix":
try:
input_links = {}
output_link = None
if len(node.inputs) > 6 and node.inputs[6].is_linked: # Color1 input
input_links[6] = node.inputs[6].links[0].from_socket
if len(node.inputs) > 7 and node.inputs[7].is_linked: # Color2 input
input_links[7] = node.inputs[7].links[0].from_socket
if len(node.outputs) > 0 and node.outputs[2].is_linked:
output_link = node.outputs[2].links[0].to_socket
mix_rgb_node = nodes.new(type="ShaderNodeMixRGB")
mix_rgb_node.location = node.location
# EXTRAS OPTIONS
mix_rgb_node.blend_type = 'MULTIPLY'
mix_rgb_node.inputs[0].default_value = 1 # Factor
if 6 in input_links:
node_tree.links.new(input_links[6], mix_rgb_node.inputs[1]) # Color1 input
if 7 in input_links:
node_tree.links.new(input_links[7], mix_rgb_node.inputs[2]) # Color2 input
# Reconnect the output link to the new MixRGB node's Color output
if output_link:
node_tree.links.new(mix_rgb_node.outputs[0], output_link)
nodes.remove(node)
except:
print(f"failed on material '{material.name}'")
fail_state = True
print(f"Replacement of 'Mix' nodes with 'MixRGB' nodes completed {'with errors' if fail_state else 'with no errors'}.")
Paste in text editor and run.