Using Python we update the source features for several network datasets and re-build them every night. The data is stored in SDE (MSSQL), and the Feature Datasets are registered as versioned. And the data is used in AGS routing services. Everything works fine, until I add a network attribute with a custom solver. Then editing the source features for any of the Network Datasets we have fails with a generic error message. If I delete the network attribute that uses the custom evaluator, everything works fine again. The custom evaluator is based on a sample from Esri, and works fine in action.
It looks like it doesn't need to registered on the DBMS, but on all machines using or editing the Network Dataset. After several hours of more testing, it looks like I found the reason. My mistake. The custom solver was built using ArcObjects SDK version 10.2, while the processing was done on a machine with 10.3.1. After building the DLL against the latest libraries, everything seems to be working fine. The thing that confused me was that the DLL built using SDK 10.2 was working fine in ArcGIS for Server 10.3.1, and also in ArcCatalog 10.3.1 if background GP-processing was disabled. But from 32-bit Python it failed.