Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exported game panics due to missing ResourceImporterOggVorbis methods #489

Closed
dgcole opened this issue Nov 19, 2023 · 21 comments · Fixed by #537
Closed

Exported game panics due to missing ResourceImporterOggVorbis methods #489

dgcole opened this issue Nov 19, 2023 · 21 comments · Fixed by #537
Labels
bug c: engine Godot classes (nodes, resources, ...) status: upstream Depending on upstream fix (typically Godot)

Comments

@dgcole
Copy link

dgcole commented Nov 19, 2023

I have been encountering the following panic when running exported games using the custom-godot feature:

ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core\extension\gdextension_interface.cpp:1347)
ERROR: Rust function panicked in file godot-ffi\src\toolbox.rs at line 248. Context: failed to initialize GDExtension level `Scene`
   at: <function unset> (godot-core\src\lib.rs:155)
ERROR: Panic msg:
  Failed to load class method ResourceImporterOggVorbis::load_from_buffer (hash 354904730).
  Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
   at: <function unset> (godot-core\src\lib.rs:101)

This same issue seems to happen when using the custom-godot feature with the example extension. Here are the steps that I have verified to reproduce the issue (I have only checked on Windows, I can check on Linux too if that would be helpful):

  1. Build editor and template_debug targets for custom godot version (I am using ad72de508 , corresponding to 4.2 rc1).
  2. Point GODOT4_BIN environment variable at the custom editor build
  3. Enable the custom-godot feature in examples/dodge-the-creeps/rust/Cargo.toml and run cargo build.
  4. In the editor, use the custom template_debug to export a Windows Desktop build of the dodge-the-creeps example.
  5. Run the game, receive the error above.
@PgBiel
Copy link
Contributor

PgBiel commented Nov 19, 2023

Which gdext version (commit) are you using?

@dgcole
Copy link
Author

dgcole commented Nov 19, 2023

Which gdext version (commit) are you using?

The latest, 8ec6a22.

@Lemiczek
Copy link
Contributor

Lemiczek commented Dec 7, 2023

cc @Bromeon

This seems to be a more serious issue than initially thought.

I don't think anybody can export a project right now, custom-godot feature or not.

[lemi@nixos testing-grounds]$ steam-run ./testing-grounds.x86_64 
Initialize GDExtension API for Rust: Godot Engine v4.2.stable.official
Godot Engine v4.2.stable.official.46dc27791 - https://godotengine.org
Vulkan API 1.3.260 - Forward+ - Using Vulkan Device #1: NVIDIA - NVIDIA GeForce GTX 1050
 
ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ERROR: Rust function panicked in file /home/lemi/.cargo/git/checkouts/gdext-76630c89719e160c/9920e2b/godot-ffi/src/toolbox.rs at line 249. Context: failed to initialize GDExtension level `Scene`
   at: <function unset> (/home/lemi/.cargo/git/checkouts/gdext-76630c89719e160c/9920e2b/godot-core/src/lib.rs:155)
ERROR: Panic msg:
  Failed to load class method ResourceImporterOggVorbis::load_from_buffer (hash 354904730).
  Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
   at: <function unset> (/home/lemi/.cargo/git/checkouts/gdext-76630c89719e160c/9920e2b/godot-core/src/lib.rs:101)
use godot::prelude::*;

struct MyExtension;

#[gdextension]
unsafe impl ExtensionLibrary for MyExtension {}

#[derive(GodotClass)]
#[class(init, base=Node)]
struct Player {
    speed: f64,
    angular_speed: f64,

    #[base]
    base: Base<Node>
}

The game will export, but attempting to play the exported project will result in a panic.

I am not using ResourceImporterOggVorbis anywhere. Which is the main concerning thing (could something be wacky about this, specifically? Not sending the proper hash or defaults?)

It's not an issue of the library missing, since if the library isn't found, it will report a missing library:

ERROR: Can't open dynamic library: lib/libtesting.so. Error: /home/lemi/Projects/Godot/testing-grounds/../lib/libtesting.so: cannot open shared object file: No such file or directory.
   at: open_dynamic_library (drivers/unix/os_unix.cpp:660)
ERROR: GDExtension dynamic library not found: lib/libtesting.so
   at: open_library (core/extension/gdextension.cpp:719)
ERROR: Failed loading resource: res://testing.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:274)
ERROR: Error loading extension: res://testing.gdextension
   at: load_extensions (core/extension/gdextension_manager.cpp:234)
Godot Engine v4.2.stable.official.46dc27791 - https://godotengine.org
Vulkan API 1.3.260 - Forward+ - Using Vulkan Device #1: NVIDIA - NVIDIA GeForce GTX 1050

In fact, just merely registering the library seems to cause this issue, no actual GodotClass required...

Looking into the mb is null error, it seems to come from this snippet:
https://github.com/godotengine/godot/blob/master/core/extension/gdextension_interface.cpp#L1327-L1349

MethodBind *mb = ClassDB::get_method_with_compatibility(classname, methodname, p_hash, &exists);

mb here seems to be null. Putting the context clues together, could ResourceImporterOggVorbis::load_from_buffer be doing something funky?

@0awful
Copy link
Contributor

0awful commented Dec 7, 2023

Additionally: There is an issue that that code block calls out given here: godotengine/godot#81386

It references the dev release of 4.2 of godot.

In the "Steps to reproduce" of the issue it says:

In the godot-cpp test project, add call to one of the affected methods. For example: add_child(memnew(Node));
Set a debugger breakpoint inside MethodBind::get_default_argument with a condition of idx < 0.

Upon the issue being opened @gdextention was tagged.

A dialogue occurred which is very above my understanding, from what I can tell it was about a hashing function error that prevented access to compatibility methods therefore breaking gdextension's ability to provide an integration point. (double check this though 😂) At least two fixes were discussed and gdextension held a meeting, picked the solution, and opened this pr.

godotengine/godot#81521

In that pr we find a portion of the broken code block. https://github.com/godotengine/godot/pull/81521/files#diff-75926029058e1a3a1999b3709fc144c7b1227af5a023f3dab87c0a07d1e07f26R1148-R1158

And we find @Bromeon commenting 😂. I didn't expect to find that when I started following threads. But maybe you know more about this issue. Is the fix broken? Are other gdextention consumers experiencing issues?

@Bromeon Bromeon added bug c: engine Godot classes (nodes, resources, ...) labels Dec 7, 2023
@Bromeon
Copy link
Member

Bromeon commented Dec 7, 2023

@0awful I'm not sure if the issue is related. godotengine/godot#81386 is specifically about default parameters -- but ResourceImporterOggVorbis::load_from_buffer() doesn't have any.


@Lemiczek Thanks, interesting to see that this happens also without custom-godot, that should simplify finding the root cause. Just to confirm, you used Godot 4.2-stable with the default export templates (also 4.2)?

This can probably be reproduced with a Godot release build (i.e. without the editor). I have the suspicion that such builds exclude some symbols? That particular seems to be registered, so I wonder if it's a weird edge case of conditionally disabled code? Or maybe the function is registered, but under a different hash in release mode? Would need some debugging...

As an anecdote, there were a few cases of missing methods in GDExtension before. If this is the case, all other bindings (godot-cpp etc) will break as well, but they defer the error to runtime, when calling this method. If so, it should be fixed upstream in Godot and not in godot-rust; see also my position on this matter.

@Lemiczek
Copy link
Contributor

Lemiczek commented Dec 7, 2023

you used Godot 4.2-stable with the default export templates (also 4.2)?

Yes, I've used Godot 4.2-stable and downloaded and used the export template for 4.2.
/home/lemi/.local/share/godot/export_templates/4.2.stable
Godot version: v4.2.stable.nixpkgs [46dc27791]

I've done a sanity check by providing the debug .so library instead of the release one after exporting... without anything substantial, it seems to still happen. 🫤

@Xylord
Copy link

Xylord commented Dec 11, 2023

Can confirm I encounter this same error while trying to run an exported project in either Windows or Ubuntu. I am not using the custom-godot feature.

@PgBiel
Copy link
Contributor

PgBiel commented Dec 11, 2023

@Xylord and others: Can you try enabling the lazy-function-tables gdext feature and trying again? We found a similar problem while debugging WASM and that feature fixed it. Perhaps the problem we found actually affects all export targets, not just WASM?

@Xylord
Copy link

Xylord commented Dec 11, 2023

@PgBiel Nice brainwave, compiling with lazy-function-tables does indeed allow the project to run on windows (will test linux shortly).
Edit: The linux export also executes successfully. I never expected to get a solution within 2 minutes of posting this comment, great community.

@Lemiczek
Copy link
Contributor

I can confirm, compiling with lazy-function-tables does work 🤔

This is still something we should fix without explicitly calling the feature though, at least we have more of an understanding on what's going on. 👍

@Bromeon
Copy link
Member

Bromeon commented Dec 11, 2023

Yeah, while that "fixes" it it just moves errors to runtime. If you happen to use one of the functions that are not available, it will work fine on your development machine, and explode on the player's machine. Not recommended.

@Xylord
Copy link

Xylord commented Dec 11, 2023

Are the unavailable functions limited to ResourceImporterOggVorbis::load_from_buffer, or might there be others that we don't see because the programs panics before trying to load them?

@Bromeon
Copy link
Member

Bromeon commented Dec 11, 2023

It's likely that there are many others, yes.

Will need to reproduce this at some point and see if there's a pattern.

@coder137
Copy link

coder137 commented Dec 12, 2023

Seems like there is a problem only with ResourceImporterOggVorbis

Commented out the panic , on exporting and running the game got the following dump

ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ResourceImporterOggVorbis load_from_buffer with 354904730 is null // my prints
ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ResourceImporterOggVorbis load_from_file with 797568536 is null // my prints

Can replicate the problem with this repository example

  • examples/dodge-the-creeps/rust/Cargo.toml
    • Change to godot = { path = "../../../godot" } (experimental wasm seems to work properly)
  • Create a simple export_presets for your platform (tested on Windows)
  • Following build commands, make sure the ../build folder is created
# From `examples/dodge-the-creeps/godot` folder
cd ../rust
cargo build
cd ../godot
%GODOT4_BIN% --headless --verbose --export-debug "Windows Desktop" ../build/GodotTest.exe
  • Run the game with console output from the build folder

@ghost
Copy link

ghost commented Dec 13, 2023

I am not using custom Godot, just regular Godot 4.2.1, with the latest Godot rust commit.

Prior to using lazy-function-tables the main scene would load, but it would not load my rust DictionarySearch Godot class, and it reported loading a "placeholder", so then I of course couldn't do DictionarySearch.search() on the "placeholder" object.

After using lazy-function-tables it appears to bypass the ogg error, and now I can call DictionarySearch.search() on my rust object, and it works correctly.

For reference, here are the errors before using lazy-function-tables :

Godot Engine v4.2.1.stable.official.b09f793f5 - https://godotengine.org
2023-12-13 23:44:00.535  6309-6351  godot                                     I  OpenGL API OpenGL ES 3.0 (4.1 Metal - 88) - Compatibility - Using Device: Google (Apple) - Android Emulator OpenGL ES Translator (Apple M2 Max)
2023-12-13 23:44:00.550  6309-6351  example.testap                            D  PlayerBase::PlayerBase()
2023-12-13 23:44:00.550  6309-6351  example.testap                            D  TrackPlayerBase::TrackPlayerBase()
2023-12-13 23:44:00.550  6309-6351  libOpenSLES                               I  Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
2023-12-13 23:44:00.563  6309-6351  AudioTrack                                D  createTrack_l(0): AUDIO_OUTPUT_FLAG_FAST denied by server; frameCount 0 -> 1956
2023-12-13 23:44:00.648  6309-6351  godot                                     E  USER ERROR: Parameter "mb" is null.
2023-12-13 23:44:00.648  6309-6351  godot                                     E     at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
2023-12-13 23:44:00.654  6309-6351  godot                                     E  USER ERROR: Rust function panicked in file /Users/scripturial/.cargo/git/checkouts/gdext-76630c89719e160c/01045be/godot-ffi/src/toolbox.rs at line 249. Context: failed to initialize GDExtension level Scene``
2023-12-13 23:44:00.654  6309-6351  godot                                     E     at: <function unset> (/Users/scripturial/.cargo/git/checkouts/gdext-76630c89719e160c/01045be/godot-core/src/lib.rs:155)
2023-12-13 23:44:00.654  6309-6351  godot                                     E  USER ERROR: Panic msg:
                                                                                                      Failed to load class method ResourceImporterOggVorbis::load_from_buffer (hash 354904730).
                                                                                                      Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
2023-12-13 23:44:00.654  6309-6351  godot                                     E     at: <function unset> (/Users/scripturial/.cargo/git/checkouts/gdext-76630c89719e160c/01045be/godot-core/src/lib.rs:101)
2023-12-13 23:44:00.878  6309-6351  godot                                     E  USER ERROR: Cannot get class 'DictionarySearch'.
2023-12-13 23:44:00.878  6309-6351  godot                                     E     at: instantiate (core/object/class_db.cpp:358)
2023-12-13 23:44:00.878  6309-6351  godot                                     E  USER WARNING: Node DictionarySearch of type DictionarySearch cannot be created. A placeholder will be created instead.
2023-12-13 23:44:00.654  6309-6351  godot                                     E     at: <function unset> (/Users/scripturial/.cargo/git/checkouts/gdext-76630c89719e160c/01045be/godot-core/src/lib.rs:155)
2023-12-13 23:44:00.654  6309-6351  godot                                     E  USER ERROR: Panic msg:
                                                                                                      Failed to load class method ResourceImporterOggVorbis::load_from_buffer (hash 354904730).
                                                                                                      Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
2023-12-13 23:44:00.654  6309-6351  godot                                     E     at: <function unset> (/Users/scripturial/.cargo/git/checkouts/gdext-76630c89719e160c/01045be/godot-core/src/lib.rs:101)
2023-12-13 23:44:00.878  6309-6351  godot                                     E  USER ERROR: Cannot get class 'DictionarySearch'.
2023-12-13 23:44:00.878  6309-6351  godot                                     E     at: instantiate (core/object/class_db.cpp:358)
2023-12-13 23:44:00.878  6309-6351  godot                                     E  USER WARNING: Node DictionarySearch of type DictionarySearch cannot be created. A placeholder will be created instead.

@Bromeon
Copy link
Member

Bromeon commented Dec 13, 2023

@Xylord

Can confirm I encounter this same error while trying to run an exported project in either Windows or Ubuntu. I am not using the custom-godot feature.

I can't reproduce it on Windows 10.

Can you guys try with the dodge-the-creeps example from the repo?
I built it with gdext ef5f388, compiled both

cargo build -p dodge-the-creeps --release
cargo build -p dodge-the-creeps --release --features godot/custom-godot

(with godot4 pointing to 4.2.0-stable).

I tried running it both directly with the official 4.2.1 export templates, and exporting it from the official 4.2.1 stable editor. Everything seems to work as expected.

@coder137
Copy link

Seems like there is a problem only with ResourceImporterOggVorbis

Commented out the panic , on exporting and running the game got the following dump

ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ResourceImporterOggVorbis load_from_buffer with 354904730 is null // my prints
ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ResourceImporterOggVorbis load_from_file with 797568536 is null // my prints

Can replicate the problem with this repository example

  • examples/dodge-the-creeps/rust/Cargo.toml
    • Change to godot = { path = "../../../godot" } (experimental wasm seems to work properly)
  • Create a simple export_presets for your platform (tested on Windows)
  • Following build commands, make sure the ../build folder is created
# From `examples/dodge-the-creeps/godot` folder
cd ../rust
cargo build
cd ../godot
%GODOT4_BIN% --headless --verbose --export-debug "Windows Desktop" ../build/GodotTest.exe
  • Run the game with console output from the build folder

@Bromeon can you try the steps listed above.
Need to update the Cargo.toml file in the Dodge the creeps example

@Xylord
Copy link

Xylord commented Dec 14, 2023

@Xylord

I did as you said. Upon starting the game the output below pops up in the console. I had to modify the dodge the creeps project a bit to get it to run. First, in Cargo.toml, I changed the godot dependency to:
godot = { git = "https://github.com/godot-rust/gdext", branch = "master", features = ["experimental-wasm"] }

Second, in the .gdextension file, I moved the .dll files to a bin folder in the godot directory, and pointed the .gdextension path there:
windows.debug.x86_64 = "res://bin/debug/dodge_the_creeps.dll"
windows.release.x86_64 = "res://bin/release/dodge_the_creeps.dll"

The game seems to work properly in-editor.

Initialize GDExtension API for Rust: Godot Engine v4.2.stable.official
Godot Engine v4.2.stable.official.46dc27791 - https://godotengine.org

ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ERROR: Rust function panicked in file /home/xylord/.cargo/git/checkouts/gdext-76630c89719e160c/ef5f388/godot-ffi/src/toolbox.rs at line 249. Context: failed to initialize GDExtension level `Scene`
   at: <function unset> (/home/xylord/.cargo/git/checkouts/gdext-76630c89719e160c/ef5f388/godot-core/src/lib.rs:159)
ERROR: Panic msg:
  Failed to load class method ResourceImporterOggVorbis::load_from_buffer (hash 354904730).
  Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
   at: <function unset> (/home/xylord/.cargo/git/checkouts/gdext-76630c89719e160c/ef5f388/godot-core/src/lib.rs:105)
ERROR: Cannot get class 'Main'.
   at: (core/object/class_db.cpp:358)
WARNING: Node Main of type Main cannot be created. A placeholder will be created instead.
     at: instantiate (scene/resources/packed_scene.cpp:254)
ERROR: Cannot get class 'Player'.
   at: (core/object/class_db.cpp:358)
WARNING: Node Player of type Player cannot be created. A placeholder will be created instead.
     at: instantiate (scene/resources/packed_scene.cpp:254)
ERROR: In Object of type 'Node': Attempt to connect nonexistent signal 'body_entered' to callable 'Node::on_player_body_entered'.
   at: (core/object/object.cpp:1344)
ERROR: Cannot get class 'Hud'.
   at: (core/object/class_db.cpp:358)
WARNING: Node Hud of type Hud cannot be created. A placeholder will be created instead.
     at: instantiate (scene/resources/packed_scene.cpp:254)
ERROR: In Object of type 'Node': Attempt to connect nonexistent signal 'hit' to callable 'Node::game_over'.
   at: (core/object/object.cpp:1344)
ERROR: In Object of type 'Node': Attempt to connect nonexistent signal 'start_game' to callable 'Node::new_game'.
   at: (core/object/object.cpp:1344)

It's probably worth noting that the library was compiled on WSL1 (Linux Ubuntu) using cargo build -p dodge-the-creeps --target=x86_64-pc-windows-gnu --release

@Bromeon
Copy link
Member

Bromeon commented Dec 14, 2023

Thanks @coder137 and @Xylord, I overlooked that the default dependencies of dodge-the-creeps only have a minimal set of classes.

Changed its Cargo.toml to:

[dependencies]
godot = { path = "../../../godot" }
rand = "0.8"

And built with:

cargo build -p dodge-the-creeps --release

Then indeed, I can reproduce it! 👍

ERROR: Parameter "mb" is null.
   at: gdextension_classdb_get_method_bind (core/extension/gdextension_interface.cpp:1347)
ERROR: Rust function panicked in file godot-ffi\src\toolbox.rs at line 249. Context: failed to initialize GDExtension level `Scene`
   at: <function unset> (godot-core\src\lib.rs:159)
ERROR: Panic msg:
  Failed to load class method ResourceImporterOggVorbis::load_from_buffer (hash 354904730).
  Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
   at: <function unset> (godot-core\src\lib.rs:105)
ERROR: Cannot get class 'Main'.
   at: (core/object/class_db.cpp:358)
WARNING: Node Main of type Main cannot be created. A placeholder will be created instead.
     at: instantiate (scene/resources/packed_scene.cpp:254)
ERROR: Cannot get class 'Player'.
...

So that's a start 🙂

@Bromeon
Copy link
Member

Bromeon commented Dec 15, 2023

Confirmed with Godot developers and tracked as godotengine/godot#86206.

I will implement a workaround in gdext, until there is an official way to know about methods that are unavailable in Release mode.

@Bromeon Bromeon added the status: upstream Depending on upstream fix (typically Godot) label Dec 15, 2023
@LinuxUserGD
Copy link

LinuxUserGD commented Dec 17, 2023

(Enabling the lazy-function-tables feature fixes the errors when loading dodge-the-creeps on Gentoo Linux godot-4.2.1, likely because compiling from source with different scons build options results in a different extension_api.json.)

Edit: As suggested on Discord, the errors disappear after enabling the custom-godot feature

diff --git a/examples/dodge-the-creeps/rust/Cargo.toml b/examples/dodge-the-creeps/rust/Cargo.toml
index c45f9d4..e709ba0 100644
--- a/examples/dodge-the-creeps/rust/Cargo.toml
+++ b/examples/dodge-the-creeps/rust/Cargo.toml
@@ -9,5 +9,5 @@ publish = false
 crate-type = ["cdylib"]
 
 [dependencies]
-godot = { path = "../../../godot", default-features = false, features = ["experimental-wasm"] }
+godot = { path = "../../../godot", default-features = false, features = ["custom-godot"] }
 rand = "0.8"
E 0:00:00:0392   gdextension_classdb_get_method_bind: Parameter "mb" is null.
  <C++ Source>   core/extension/gdextension_interface.cpp:1347 @ gdextension_classdb_get_method_bind()
E 0:00:00:0392   <function unset>: Rust function panicked in file godot-ffi/src/toolbox.rs at line 249. Context: failed to initialize GDExtension level `Scene`
  <C++ Source>   godot-core/src/lib.rs:159 @ <function unset>()
E 0:00:00:0392   <function unset>: Panic msg:
  Failed to load class method AnimationPlayer::set_process_callback (hash 1663839457).
  Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html
  <C++ Source>   godot-core/src/lib.rs:105 @ <function unset>()
E 0:00:00:0434   instantiate: Cannot get class 'Main'.
  <C++ Error>    Parameter "ti" is null.
  <C++ Source>   core/object/class_db.cpp:358 @ instantiate()
E 0:00:00:0434   instantiate: Cannot get class 'Player'.
  <C++ Error>    Parameter "ti" is null.
  <C++ Source>   core/object/class_db.cpp:358 @ instantiate()
E 0:00:00:0434   connect: In Object of type 'Node': Attempt to connect nonexistent signal 'body_entered' to callable 'Node::on_player_body_entered'.
  <C++ Error>    Condition "!signal_is_valid" is true. Returning: ERR_INVALID_PARAMETER
  <C++ Source>   core/object/object.cpp:1344 @ connect()
E 0:00:00:0434   instantiate: Cannot get class 'Hud'.
  <C++ Error>    Parameter "ti" is null.
  <C++ Source>   core/object/class_db.cpp:358 @ instantiate()

@Bromeon Bromeon changed the title Exported game panics with custom-godot feature Exported game panics due to missing ResourceImporterOggVorbis methods Dec 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug c: engine Godot classes (nodes, resources, ...) status: upstream Depending on upstream fix (typically Godot)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants