{"record":{"id":"f76184e77baa6f50","repo":"keras-team/keras","slug":"layer-must-be-stateful","errorCode":null,"errorMessage":"Layer must be stateful.","messagePattern":"Layer must be stateful\\.","errorType":"exception","errorClass":"AttributeError","httpStatus":null,"severity":"error","filePath":"keras/src/layers/rnn/bidirectional.py","lineNumber":487,"sourceCode":"                \"Unrecognized value for `merge_mode`. \"\n                f\"Received: {self.merge_mode}. \"\n                'Expected one of {\"concat\", \"sum\", \"ave\", \"mul\"}.'\n            )\n\n        if self.return_state:\n            states = tuple(fwd_states + bwd_states)\n            if self.merge_mode is None:\n                return output + states\n            return (output,) + states\n        return output\n\n    def reset_states(self):\n        # Compatibility alias.\n        self.reset_state()\n\n    def reset_state(self):\n        if not self.stateful:\n            raise AttributeError(\"Layer must be stateful.\")\n        self.forward_layer.reset_state()\n        self.backward_layer.reset_state()\n\n    @property\n    def states(self):\n        if self.forward_layer.states and self.backward_layer.states:\n            return tuple(self.forward_layer.states + self.backward_layer.states)\n        return None\n\n    def build(self, sequences_shape, initial_state_shape=None):\n        if not self.forward_layer.built:\n            self.forward_layer.build(sequences_shape)\n        if not self.backward_layer.built:\n            self.backward_layer.build(sequences_shape)\n\n    def compute_mask(self, _, mask):\n        if isinstance(mask, list):\n            mask = mask[0]","sourceCodeStart":469,"sourceCodeEnd":505,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/layers/rnn/bidirectional.py#L469-L505","documentation":"Error \"Layer must be stateful.\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/layers/rnn/bidirectional.py:487 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"}