{"record":{"id":"c017d66c117898cf","repo":"BabylonJS/Babylon.js","slug":"the-connectionpointtype-input-type-input-named","errorCode":null,"errorMessage":"The ${ConnectionPointType[input.type]} input named \"${input.name}\" is missing for the ${this.getClassName()} named \"${this.name}\"","messagePattern":"The (.+?) input named \"(.+?)\" is missing for the (.+?) named \"(.+?)\"","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/dev/smartFilters/src/blockFoundation/baseBlock.ts","lineNumber":335,"sourceCode":"     * @param type - Defines the type of the output connection point\r\n     * @param initialValue - Defines the initial value of the output connection point\r\n     * @returns The new output connection point with a default value\r\n     * @internal\r\n     */\r\n    public _registerOutputWithDefault<U extends ConnectionPointType>(name: string, type: U, initialValue: RuntimeData<U>): ConnectionPointWithDefault<U> {\r\n        const output = new ConnectionPointWithDefault(name, this, type, ConnectionPointDirection.Output, initialValue);\r\n        this._outputs.push(output);\r\n        return output;\r\n    }\r\n\r\n    /**\r\n     * Gets the required RuntimeData for the given input, throwing with a clear message if it is null\r\n     * @param input - The input to get the runtime data for\r\n     * @returns The runtimeData or throws if it was undefined\r\n     */\r\n    protected _confirmRuntimeDataSupplied<U extends ConnectionPointType = ConnectionPointType>(input: ConnectionPoint<U>): RuntimeData<U> {\r\n        if (!input.runtimeData) {\r\n            throw new Error(`The ${ConnectionPointType[input.type]} input named \"${input.name}\" is missing for the ${this.getClassName()} named \"${this.name}\"`);\r\n        }\r\n        return input.runtimeData;\r\n    }\r\n}\r\n","sourceCodeStart":317,"sourceCodeEnd":340,"githubUrl":"https://github.com/BabylonJS/Babylon.js/blob/0592b347b8a4ee0236089ea86a749cacfdb266d8/packages/dev/smartFilters/src/blockFoundation/baseBlock.ts#L317-L340","documentation":"_confirmRuntimeDataSupplied reads the runtimeData off an input connection point and throws if it is null/undefined. Blocks call it when they need a concrete runtime value (e.g. a texture or number) for an input that was expected to be supplied at runtime.","triggerScenarios":"Calling propagateRuntimeData / inputsToBind / _confirmRuntimeDataSupplied (or block APIs like input, time, background, foreground) while the named input connection point has no runtimeData set — it is unbound and has no default value.","commonSituations":"Forgetting to bind a required texture/number input before running the filter, connecting a runtime value to the wrong input name, or a runtime binding that silently failed so runtimeData stayed null.","solutions":["Set runtimeData on the named input before running: input.runtimeData = value (or use the block's setInput API).","Provide a default value when the input connection point is registered so it is never null.","Check your binding code targets the exact input name reported in the error for that block.","Connect the input to another block's output so the value propagates instead of relying on runtimeData."],"exampleFix":"// before\nblock.runtimeInputs.texture; // runtimeData is null\n// after\nconst input = block.input(\"texture\");\ninput.runtimeData = texture;\nblock.propagateRuntimeData(runtimeData);","handlingStrategy":"try-catch","validationCode":"for (const name of ['texture', 'time']) {\n    const input = block.input(name);\n    if (input && !input.runtimeData && !input.connectedTo) {\n        throw new Error(`input '${name}' has neither runtimeData nor a connection`);\n    }\n}","typeGuard":"function hasRuntimeData<U extends ConnectionPointType>(input: ConnectionPoint<U>): input is ConnectionPoint<U> & { runtimeData: RuntimeData<U> } {\n    return input.runtimeData != null;\n}","tryCatchPattern":"try {\n    block.propagateRuntimeData(runtimeData);\n} catch (e) {\n    if (e instanceof Error && e.message.includes('is missing for the')) {\n        // parse input.name from the message and supply the missing value\n    } else throw e;\n}","preventionTips":["Bind all required inputs before running or propagating runtime data.","Register sensible default values for optional inputs at block creation.","Prefer connecting inputs to other blocks' outputs over ad-hoc runtimeData."],"tags":["smart-filters","runtime-data","binding"],"backgroundTag":"missing-runtime-data","analyzedSha":"0592b347b8a4ee0236089ea86a749cacfdb266d8","analyzedAt":"2026-08-30T15:11:20.442Z","schemaVersion":2},"datasetVersion":"2026-08-30T18:17:15.746Z"}