FyroxEngine/Fyrox · warning

No id specified for node

Error message

No id specified for node {original_handle}! Random id will be used.

What it means

Fyrox Model resource loading tries to map each instantiated scene node's original handle to a stored instance id so nodes can be re-referenced consistently. When a node's original handle has no entry in the model's id map, the engine logs this warning and a random id will be used instead. It signals that the model's saved node-id bookkeeping is incomplete, so handle-based lookups after loading may be unreliable.

Solutions

  1. Re-save the model resource in the Fyrox editor so all nodes get ids written into the model's id map.
  2. Check that the model file is up to date with the current Fyrox version and regenerate it from source assets.
  3. If the warning is benign for your use, ignore it — a random id is assigned and the scene still loads.

Example fix

// before: loading a stale model asset saved by an older editor
let model = resource_manager.request::<Model>("character.fyrox");
// after: re-save the model in the current Fyrox editor, then load
// (assets/model/character.fyrox contains entries for every node in its ids map)
Defensive patterns

Strategy: fallback

Prevention

When it happens

Trigger: Loading a .fyrox model whose saved id map (self.ids) is missing an entry for one of the instantiated nodes; model files saved by older versions or hand-edited/corrupted models where some nodes were not registered in the ids map.

Common situations: Using model assets saved with an older Fyrox version before id maps were stored, or models created programmatically and saved without proper finalize; copy-pasting node data between model files.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of FyroxEngine/Fyrox@76c91aad8e (2026-09-10). Data as JSON: /api/errors/06ecb122b2d6a3a2. Report an issue: GitHub.

Appendix: source

Thrown at fyrox-impl/src/resource/model/mod.rs:181

        let resource_root = data.scene.graph.get_root();
        let (root, _) = ModelResource::instantiate_from(
            model.clone(),
            &data,
            resource_root,
            &mut self.dest_scene.graph,
            &mut |original_handle, node| {
                if original_handle == resource_root {
                    if let Some(transform) = self.local_transform.clone() {
                        *node.local_transform_mut() = transform;
                    }
                }

                if let Some(ids) = self.ids.as_ref() {
                    if let Some(id) = ids.get(&original_handle) {
                        node.instance_id = *id;
                    } else {
                        Log::warn(format!(
                            "No id specified for node {original_handle}! Random id will be used."
                        ))
                    }
                }
            },
        );

        // Explicitly mark as root node.
        self.dest_scene.graph[root].is_resource_instance_root = true;

        root
    }
}

/// Common trait that has animation retargetting methods.
pub trait AnimationSource {
    /// Prefab type.
    type Prefab: PrefabData<Graph = Self::SceneGraph>;

View on GitHub (pinned to 76c91aad8e)