{"record":{"id":"17af69ce2b9ee3c9","repo":"keras-team/keras","slug":"invalid-feature-type-feature","errorCode":null,"errorMessage":"Invalid feature type: {feature}","messagePattern":"Invalid feature type: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/layers/preprocessing/feature_space.py","lineNumber":489,"sourceCode":"            return self.float(name=name)\n        elif feature == \"float_normalized\":\n            return self.float_normalized(name=name)\n        elif feature == \"float_rescaled\":\n            return self.float_rescaled(name=name)\n        elif feature == \"float_discretized\":\n            return self.float_discretized(\n                name=name, num_bins=self.num_discretization_bins\n            )\n        elif feature == \"integer_categorical\":\n            return self.integer_categorical(name=name)\n        elif feature == \"string_categorical\":\n            return self.string_categorical(name=name)\n        elif feature == \"integer_hashed\":\n            return self.integer_hashed(self.hashing_dim, name=name)\n        elif feature == \"string_hashed\":\n            return self.string_hashed(self.hashing_dim, name=name)\n        else:\n            raise ValueError(f\"Invalid feature type: {feature}\")\n\n    def _cross_to_crosser(self, cross):\n        return layers.HashedCrossing(cross.crossing_dim, name=cross.name)\n\n    def _list_adaptable_preprocessors(self):\n        adaptable_preprocessors = []\n        for name in self.features.keys():\n            preprocessor = self.preprocessors[name]\n            # Special case: a Normalization layer with preset mean/variance.\n            # Not adaptable.\n            if isinstance(preprocessor, layers.Normalization):\n                if preprocessor.input_mean is not None:\n                    continue\n            # Special case: a TextVectorization layer with provided vocabulary.\n            elif isinstance(preprocessor, layers.TextVectorization):\n                if preprocessor._has_input_vocabulary:\n                    continue\n            if hasattr(preprocessor, \"adapt\"):","sourceCodeStart":471,"sourceCodeEnd":507,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/layers/preprocessing/feature_space.py#L471-L507","documentation":"Error \"Invalid feature type: {feature}\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/layers/preprocessing/feature_space.py:489 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"}