GDExtension fails to load on newer Godot 4.x minor release
0 reputation · 17 Aug 2021, 17:59 UTC
The goal is to determine why a GDExtension binary compiled against one Godot 4 minor release (e.g., 4.1) refuses to initialize when opened in a later release (e.g., 4.2 or 4.3). The engine performs a runtime check against the extension_api.json that accompanies each release; if the binary was built with a different API dump, the editor or export may emit a “not compatible” warning or silently skip registration.
Constraints include the fact that Godot 4 minor updates can introduce new or removed symbols in the extension API, and that godot-cpp bindings are pinned to a specific commit per engine version. A single binary cannot guarantee backward or forward compatibility across these changes.
Unresolved decision: should a project ship a separate GDExtension binary for each supported minor release, or restrict the entire codebase to a single pinned engine version to avoid runtime failures?
- What documented API differences between 4.2 and 4.3 directly affect GDExtension loading?
- Which output diagnostics reliably indicate an API mismatch when a binary fails to load?
- Is maintaining multiple binaries for each minor release more sustainable than locking to a single engine version?