When a snapshot's network magic doesn't match the node's, SnapshotMetadata::Unserialize builds an error message with the names of both networks. The node's name comes from GetNetworkForMagic(m_network_magic).value(), which is empty on a custom signet because its magic is derived from the challenge and is not one of the built-in ones. loadtxoutset with a snapshot made for another network then fails with bad_optional_access instead of the message.
The node side now falls back to "custom signet", the only case where the lookup can be empty.
before: Unable to parse metadata: bad_optional_access
after: Unable to parse metadata: The network of the snapshot (main) does not match the network of this node (custom signet).
New unit test snapshot_metadata_network_mismatch_custom_signet fails on master with std::bad_optional_access. validation_chainstatemanager_tests and feature_assumeutxo.py pass.