Quick answer: Godot GDExtension method lookups failing after a rebuild despite the binary being current? Editor caches the binding table at load — restart or reimport the extension.
Adding a new C++ method to a GDExtension; the binary rebuilds but Godot scripts still say “invalid call to method”.
Editor Restart
The simplest fix: close and reopen Godot. The extension loads fresh; new methods register; calls resolve.
Reimport via FileSystem
Right-click the .gdextension file in the FileSystem dock → Reimport. Forces a rescan of registered methods.
Binding Macros Required
In C++, every callable method needs binding: ClassDB::bind_method(D_METHOD("my_method", "arg"), &MyClass::my_method);. Skip binding = invisible to GDScript.
Static Methods Differ
For static methods, use ClassDB::bind_static_method. Mixing up the two = no binding produced.
Verifying
New methods callable from GDScript without further editor restart. Hot-rebuild + reimport flow works.
“Editor caches bindings. Restart or reimport on rebuild.”
Add a small helper script to your project that calls EditorInterface.reload_scripts on focus — saves the editor restart for many iteration cycles.