{"record":{"id":"78500cd720a16367","repo":"BabylonJS/Babylon.js","slug":"rotation-quaternion-input-not-found","errorCode":null,"errorMessage":"Rotation quaternion input not found","messagePattern":"Rotation quaternion input not found","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/dev/loaders/src/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.ts","lineNumber":724,"sourceCode":"    \"math/matCompose\": {\n        blocks: [FlowGraphBlockNames.MatrixCompose],\n        inputs: {\n            values: {\n                translation: { name: \"position\", gltfType: \"float3\" },\n                rotation: { name: \"rotationQuaternion\", gltfType: \"float4\" },\n                scale: { name: \"scaling\", gltfType: \"float3\" },\n            },\n        },\n        outputs: {\n            values: {\n                value: { name: \"value\" },\n            },\n        },\n        extraProcessor(_gltfBlock, _declaration, _mapping, _parser, serializedObjects, context) {\n            // configure it to work the way glTF specifies\n            const d = serializedObjects[0].dataInputs.find((input) => input.name === \"rotationQuaternion\");\n            if (!d) {\n                throw new Error(\"Rotation quaternion input not found\");\n            }\n            // if value is defined, set the type to quaternion\n            if (context._connectionValues[d.uniqueId]) {\n                context._connectionValues[d.uniqueId].type = FlowGraphTypes.Quaternion;\n            }\n            return serializedObjects;\n        },\n    },\n    \"math/matDecompose\": {\n        blocks: [FlowGraphBlockNames.MatrixDecompose],\n        inputs: {\n            values: {\n                a: { name: \"input\", gltfType: \"number\" },\n            },\n        },\n        outputs: {\n            values: {\n                translation: { name: \"position\" },","sourceCodeStart":706,"sourceCodeEnd":742,"githubUrl":"https://github.com/BabylonJS/Babylon.js/blob/0592b347b8a4ee0236089ea86a749cacfdb266d8/packages/dev/loaders/src/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.ts#L706-L742","documentation":"The declarationMapper's rotation extraProcessor (used by e.g. the rotate/set-rotation style block) looks for a serialized data input named \"rotationQuaternion\" on the generated flow graph block and throws if the block has no such input. This indicates the block was serialized without the expected quaternion input connection point.","triggerScenarios":"Parsing an interactivity graph whose mapped flow graph block type does not define a \"rotationQuaternion\" data input (wrong block name in mapping, Babylon.js version where the block's inputs changed, or serializedObjects[0].dataInputs missing the entry).","commonSituations":"Babylon.js version mismatch between the mapping table and the FlowGraph block implementations (input renamed); custom declaration mapping pointing an op at a block without that input.","solutions":["Upgrade @babylonjs/core and the loaders to matching versions so the block exposes \"rotationQuaternion\"","Check your custom declaration mapping routes the op to the correct FlowGraph block that defines the rotationQuaternion input","Register/patch the block's dataInputs if using a custom block"],"exampleFix":"// before\nblocks: [\"FlowGraphSetPropertyBlock\"] // block without rotationQuaternion input\n// after\nblocks: [FlowGraphBlockNames.SetRotation] // block defining rotationQuaternion input","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await loader.loadAsync(url);\n} catch (e) {\n  if (e instanceof Error && e.message === \"Rotation quaternion input not found\") {\n    console.error(\"Mapped block lacks a rotationQuaternion input; check Babylon.js version and declaration mapping.\");\n  } else throw e;\n}","preventionTips":["Keep @babylonjs/core and loader packages on the same version","Only map ops to FlowGraph blocks that actually define a rotationQuaternion input","Test interactivity asset parsing in CI after any Babylon.js upgrade"],"tags":["gltf","interactivity","flow-graph","missing-input"],"backgroundTag":"flowgraph-data-input-missing","analyzedSha":"0592b347b8a4ee0236089ea86a749cacfdb266d8","analyzedAt":"2026-08-30T15:11:20.442Z","schemaVersion":2},"datasetVersion":"2026-08-30T18:17:15.746Z"}