{"record":{"id":"b1b1b532bf0d1f08","repo":"BabylonJS/Babylon.js","slug":"extensioncontext-pointer-interpolation-is-miss","errorCode":null,"errorMessage":"${extensionContext}/pointer: Interpolation is missing","messagePattern":"(.+?)/pointer: Interpolation is missing","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/dev/loaders/src/glTF/2.0/Extensions/KHR_animation_pointer.pure.ts","lineNumber":90,"sourceCode":"        if (channel.target.path !== AnimationChannelTargetPath.POINTER) {\r\n            Logger.Warn(`${context}/target/path: Value (${channel.target.path}) must be (${AnimationChannelTargetPath.POINTER}) when using the ${this.name} extension`);\r\n        }\r\n\r\n        if (channel.target.node != undefined) {\r\n            Logger.Warn(`${context}/target/node: Value (${channel.target.node}) must not be present when using the ${this.name} extension`);\r\n        }\r\n\r\n        const extensionContext = `${context}/extensions/${this.name}`;\r\n\r\n        const pointer = extension.pointer;\r\n        if (!pointer) {\r\n            throw new Error(`${extensionContext}: Pointer is missing`);\r\n        }\r\n\r\n        try {\r\n            const obj = this._pathToObjectConverter.convert(pointer);\r\n            if (!obj.info.interpolation) {\r\n                throw new Error(`${extensionContext}/pointer: Interpolation is missing`);\r\n            }\r\n            return this._loader._loadAnimationChannelFromTargetInfoAsync(\r\n                context,\r\n                animationContext,\r\n                animation,\r\n                channel,\r\n                {\r\n                    object: obj.object,\r\n                    info: obj.info.interpolation,\r\n                },\r\n                onLoad\r\n            );\r\n        } catch (e) {\r\n            Logger.Warn(`${extensionContext}/pointer: Invalid pointer (${pointer}) skipped`);\r\n            return null;\r\n        }\r\n    }\r\n}\r","sourceCodeStart":72,"sourceCodeEnd":108,"githubUrl":"https://github.com/BabylonJS/Babylon.js/blob/0592b347b8a4ee0236089ea86a749cacfdb266d8/packages/dev/loaders/src/glTF/2.0/Extensions/KHR_animation_pointer.pure.ts#L72-L108","documentation":"After resolving the KHR_animation_pointer JSON pointer to an object, the loader checks that the target info exposes an interpolation mode. If obj.info.interpolation is missing (the pointer resolved to a property the loader cannot animate with an interpolation, or a malformed target), this error is thrown.","triggerScenarios":"A KHR_animation_pointer channel whose pointer resolves to an object/property without interpolation info — e.g. pointing at a node property the converter cannot bind, or a pointer to something that exists but lacks the expected animatable metadata.","commonSituations":"Pointing at unsupported properties (wrong path depth, array index out of range resolving to wrong object); pointers targeting custom/user properties not backed by animation info; exporter bugs writing incomplete target info.","solutions":["Verify the pointer targets a supported animatable property path","Fix the pointer string (typos resolve to unexpected objects)","Use a sampler/target that provides interpolation info (or default linear path on standard node channels)","Upgrade the loader version if the target property type should be supported"],"exampleFix":"// before\n\"pointer\": \"/nodes/0/unknownCustomProp\"\n// after\n\"pointer\": \"/nodes/0/rotation\"","handlingStrategy":"type-guard","validationCode":"const obj = pathToObjectConverter.convert(pointer);\nif (!obj?.info?.interpolation) console.warn(`Pointer ${pointer} is not animatable`);","typeGuard":"function isAnimatable(target: { info?: { interpolation?: unknown } }): target is { info: { interpolation: string } } {\n  return !!target.info && typeof target.info.interpolation === 'string';\n}","tryCatchPattern":"try {\n  await BABYLON.SceneLoader.LoadAsync('./', 'anim.gltf', engine);\n} catch (e) {\n  if (e instanceof Error && e.message.includes('Interpolation is missing')) {\n    console.error(`Animation pointer target has no interpolation info: check pointer path`);\n  } else throw e;\n}","preventionTips":["Point only at properties known to be animatable (node TRS, material factors)","Test pointer paths against the Babylon.js glTF loader docs","Avoid deep/custom pointers not covered by the path converter"],"tags":["gltf","extension","animation","pointer"],"backgroundTag":"invalid-animation-pointer","analyzedSha":"0592b347b8a4ee0236089ea86a749cacfdb266d8","analyzedAt":"2026-08-30T15:11:20.442Z","schemaVersion":2},"datasetVersion":"2026-08-30T18:17:15.746Z"}