{"record":{"id":"2eaf9acd71f32d25","repo":"nautechsystems/nautilus_trader","slug":"saving-signals-for-redis-cache-adapter-not-support","errorCode":null,"errorMessage":"Saving signals for Redis cache adapter not supported","messagePattern":"Saving signals for Redis cache adapter not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/infrastructure/src/redis/cache.rs","lineNumber":1744,"sourceCode":"\n        Ok(())\n    }\n\n    fn add_position_snapshot(&self, snapshot: &PositionSnapshot) -> anyhow::Result<()> {\n        let key = format!(\n            \"{SNAPSHOTS}{REDIS_DELIMITER}{POSITIONS}{REDIS_DELIMITER}{}\",\n            snapshot.position_id\n        );\n        let payload = DatabaseQueries::serialize_payload(self.encoding(), snapshot)?;\n        self.database.insert(key, Some(vec![Bytes::from(payload)]))\n    }\n\n    fn add_order_book(&self, _order_book: &OrderBook) -> anyhow::Result<()> {\n        anyhow::bail!(\"Saving market data for Redis cache adapter not supported\")\n    }\n\n    fn add_signal(&self, _signal: &Signal) -> anyhow::Result<()> {\n        anyhow::bail!(\"Saving signals for Redis cache adapter not supported\")\n    }\n\n    fn add_custom_data(&self, data: &CustomData) -> anyhow::Result<()> {\n        self.database.add_custom_data(data)\n    }\n\n    fn add_quote(&self, _quote: &QuoteTick) -> anyhow::Result<()> {\n        anyhow::bail!(\"Saving market data for Redis cache adapter not supported\")\n    }\n\n    fn add_trade(&self, _trade: &TradeTick) -> anyhow::Result<()> {\n        anyhow::bail!(\"Saving market data for Redis cache adapter not supported\")\n    }\n\n    fn add_funding_rate(&self, _funding_rate: &FundingRateUpdate) -> anyhow::Result<()> {\n        anyhow::bail!(\"Saving market data for Redis cache adapter not supported\")\n    }\n","sourceCodeStart":1726,"sourceCodeEnd":1762,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/infrastructure/src/redis/cache.rs#L1726-L1762","documentation":"add_signals on the Redis cache adapter is an unimplemented operation: signal persistence is deliberately not supported by the Redis cache, so any caller attempting to save signals gets this sentinel bail instead of a partial write.","triggerScenarios":"Thrown at crates/infrastructure/src/redis/cache.rs:1744 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Persist signals via a different sink or the SQL cache adapter","Extend the adapter if signal persistence in Redis is required"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}