UPDATE I was able to load a much older version of the city without problems, so it must be something wrong with my current save I am trying to load from.
After trying to load the latest save, I got a new error that I haven't seen before:
Exception has been thrown by the target of an invocation. [System.Reflection.TargetInvocationException]
Details:
System.IndexOutOfRangeException: Array index is out of range.
at (wrapper dynamic-method) DistrictManager.DistrictManager.GetDistrict_Patch0 (DistrictManager,UnityEngine.Vector3) <0x000dc>
at RoadBaseAI.GetMaintenanceCost (UnityEngine.Vector3,UnityEngine.Vector3) <0x0011d>
at IntersectionAI.EnsureCosts () <0x00221>
at IntersectionAI.GetMaintenanceCost () <0x0001c>
at BuildingAI.GetLocalizedTooltip () <0x00022>
at PrefabInfo.GetLocalizedTooltip () <0x00595>
at GeneratedScrollPanel.CreateAssetItem (PrefabInfo) <0x00022>
at GeneratedScrollPanel.PopulateAssets (GeneratedScrollPanel/AssetFilter,System.Comparison1<PrefabInfo>,bool) <0x00090> at GeneratedScrollPanel.PopulateAssets (GeneratedScrollPanel/AssetFilter,System.Comparison1<PrefabInfo>) <0x0002f>
at RoadsPanel.RefreshPanel () <0x0007c>
at GeneratedGroupPanel.SpawnButtonEntry (ColossalFramework.UI.UITabstrip,string,string,bool,string,string,string,bool,bool) <0x003e3>
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke (object,object[],System.Exception