C#: An error is logged for every generic class that implements a godot type
Author: CrabNickolsonCreated Sep 28, 2026Updated Sep 28, 2026
Labelsbugtopic:dotnetregression
Tested versions
- Reproducible in: v4.8.dev.mono.custom_build [1d797566ee]
- Not reproducible in: v4.8.dev.mono.custom_build [2fc1f18472]
System information
Godot v4.8.dev.mono (1d797566ee) - CachyOS Linux #1 SMP PREEMPT_DYNAMIC Sat, 26 Sep 2026 19:43:45 +0000 on Wayland - X11 display driver, Multi-window, 2 monitors (2560x1440 @ 119.95 Hz, 1920x1080 @ 119.93 Hz) - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3080 (nvidia; 615.71.09) - AMD Ryzen 7 5800X 8-Core Processor (16 threads) - 62.71 GiB memory - PulseAudio (44100 Hz, Stereo/mono)
Issue description
For each generic C# class that implements a godot type, an error is logged. So if you have something like this:
public abstract partial class GenericNode<T> : Node { }public partial class SpecificNode : GenericNode<float> { }Then this error is logged:
E 0:00:00:972 void System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException(): System.InvalidOperationException: Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true.
<C++ Error> System.InvalidOperationException
<C++ Source> :0 @ void System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException()
<Stack Trace> :0 @ void System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException()
:0 @ object System.Reflection.RuntimeMethodInfo.Invoke(object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
ScriptManagerBridge.cs:1111 @ void Godot.Bridge.ScriptManagerBridge.GetGodotClassTrampolinesForType(System.Type, Godot.Bridge.ScriptManagerBridge+TrampolineCollectorPool)
ScriptManagerBridge.cs:829 @ void Godot.Bridge.ScriptManagerBridge.UpdateScriptTrampolines(nint, Godot.NativeInterop.godot_bool*, System.Void(System.IntPtr, Godot.NativeInterop.godot_string_name*, System.Int32, System.Void*, Godot.NativeInterop.godot_bool), System.Void(System.IntPtr, Godot.NativeInterop.godot_string_name*, System.Void*, System.Void*), System.Void(System.IntPtr, Godot.NativeInterop.godot_string_name*, System.Int32, System.Void*))But other than, everything still seems to work as expected and SpecificNode can be used as normal. From what I can tell, this is a regression from #116300.
Steps to reproduce
- Open MRP
- Run Project
- Observe error being logged
Minimal reproduction project (MRP)
Source: godotengine/godot