{"record":{"id":"38107ede870e8e0e","repo":"keras-team/keras","slug":"unexpected-object-from-deserialization-expected-a","errorCode":null,"errorMessage":"Unexpected object from deserialization, expected a layer or operation, got a {type(layer)}","messagePattern":"Unexpected object from deserialization, expected a layer or operation, got a (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/models/functional.py","lineNumber":573,"sourceCode":"\n        Args:\n            layer_data: layer config dict.\n        \"\"\"\n        layer_name = layer_data[\"name\"]\n\n        # Instantiate layer.\n        if \"module\" not in layer_data:\n            # Legacy format deserialization (no \"module\" key)\n            # used for H5 and SavedModel formats\n            layer = saving_utils.model_from_config(\n                layer_data, custom_objects=custom_objects\n            )\n        else:\n            layer = serialization_lib.deserialize_keras_object(\n                layer_data, custom_objects=custom_objects\n            )\n        if not isinstance(layer, Operation):\n            raise ValueError(\n                \"Unexpected object from deserialization, expected a layer or \"\n                f\"operation, got a {type(layer)}\"\n            )\n        created_layers[layer_name] = layer\n\n        # Gather layer inputs.\n        inbound_nodes_data = layer_data[\"inbound_nodes\"]\n        for node_data in inbound_nodes_data:\n            # We don't process nodes (i.e. make layer calls)\n            # on the fly because the inbound node may not yet exist,\n            # in case of layer shared at different topological depths\n            # (e.g. a model such as A(B(A(B(x)))))\n            add_unprocessed_node(layer, node_data)\n\n    # Extract config used to instantiate Functional model from the config. The\n    # remaining config will be passed as keyword arguments to the Model\n    # constructor.\n    functional_config = {}","sourceCodeStart":555,"sourceCodeEnd":591,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/models/functional.py#L555-L591","documentation":"Error \"Unexpected object from deserialization, expected a layer or operation, got a {type(layer)}\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/models/functional.py:573 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"}