{"record":{"id":"5c740b11582bd225","repo":"keras-team/keras","slug":"the-input-input-tensor-name-is-not-optional-b","errorCode":null,"errorMessage":"The input '{input_tensor.name}' is not optional, but None was passed. Please provide a valid tensor.","messagePattern":"The input '(.+?)' is not optional, but None was passed\\. Please provide a valid tensor\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/models/functional.py","lineNumber":221,"sourceCode":"        return input_shapes\n\n    @property\n    def output_shape(self):\n        output_shapes = tree.map_structure(lambda x: x.shape, self.outputs)\n        if isinstance(output_shapes, list) and len(output_shapes) == 1:\n            return output_shapes[0]\n        return output_shapes\n\n    def _assert_input_compatibility(self, *args):\n        flat_inputs = tree.flatten(args[0])\n        for x, input_tensor in zip(flat_inputs, self._inputs):\n            if x is None:\n                input_layer = input_tensor._keras_history.operation\n                if (\n                    isinstance(input_layer, InputLayer)\n                    and not input_layer.optional\n                ):\n                    raise ValueError(\n                        (\n                            f\"The input '{input_tensor.name}' is not optional, \"\n                            \"but None was passed. \"\n                            \"Please provide a valid tensor.\"\n                        )\n                    )\n        return super(Model, self)._assert_input_compatibility(*args)\n\n    def _maybe_warn_inputs_struct_mismatch(self, inputs, raise_exception=False):\n        try:\n            # We first normalize to tuples before performing the check to\n            # suppress warnings when encountering mismatched tuples and lists.\n            tree.assert_same_structure(\n                tree.lists_to_tuples(inputs),\n                tree.lists_to_tuples(self._inputs_struct),\n            )\n        except:\n            model_inputs_struct = tree.map_structure(","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/models/functional.py#L203-L239","documentation":"Error \"The input '{input_tensor.name}' is not optional, but None was passed. Please provide a valid tensor.\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/models/functional.py:221 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}