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.