Yesterday, I tried to open my project no signal on another Arch Linux computer. The most recent work I had done was to upgrade from Godot 4.3 to 4.4, and everything seemed to be fine. However, opening the project on this computer didn’t work. Instead, I got the following import errors:
Godot Engine v4.4.1.stable.arch_linux (c) 2007-present Juan Linietsky, Ariel Manzur & Godot Contributors.
--- Debug adapter server started on port 6006 ---
--- GDScript language server started on port 6005 ---
ERROR: Failed loading resource: res://src/auto/auto.svg. Make sure resources have been imported by opening the project in the editor at least once.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_keycard.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_fusebox_a.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_fuse_a.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_games_dartboard.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_games_darts.fbx'.
ERROR: modules/fbx/editor/editor_scene_importer_fbx2gltf.cpp:92 - FBX conversion to glTF failed with error: 127.
ERROR: Error importing 'res://models/non-interactables/sm_props_plate_cakestand.fbx'.
ERROR: Failed loading resource: res://models/non-interactables/sm_props_games_dartboard.fbx. Make sure resources have been imported by opening the project in the editor at least once.
ERROR: Failed loading resource: res://models/non-interactables/sm_props_games_darts.fbx. Make sure resources have been imported by opening the project in the editor at least once.
I wasn’t sure what this was about, and it seemed a bit strange. I remembered that one of the recent changes in Godot was to use a new FBX importer called ufbx which was included in the build of Godot instead of the command line tool FBX2glTF which needed to be installed separately, and so I suspected that might be one of the issues. When I looked at the code for editor_scene_importer_fbx2gltf.cpp, I saw that all it was doing was running a command:
Which was strange, because I was expecting it to call ufbx instead. Looking up the error code online reveals that error code 127 is returned on linux when the program cannot be found, and this made sense to me because I had uninstalled godot-fbx2gltf-bin in anticipation of not needing it anymore.
Checking the import settings, I found out that FBX assets actually have a property fbx/importer which can be changed between FBX2glTF and ufbx. For the files that failed to import, it was currently set to FBX2glTF. Changing it to ufbx resolved the issue.