{"record":{"id":"d640259b0869f334","repo":"nautechsystems/nautilus_trader","slug":"catalog-replay-loading-for-data-cls-is-not-suppo","errorCode":null,"errorMessage":"catalog replay loading for {data_cls} is not supported","messagePattern":"catalog replay loading for (.+?) is not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/event_store/src/replay/catalog.rs","lineNumber":108,"sourceCode":"                    start,\n                    end,\n                    None,\n                    files,\n                    false,\n                )?,\n            )),\n            \"bars\" => Ok(catalog_replay_records(\n                self.catalog.query_typed_data::<Bar>(\n                    identifiers,\n                    start,\n                    end,\n                    None,\n                    files,\n                    false,\n                )?,\n            )),\n            data_cls => {\n                anyhow::bail!(\"catalog replay loading for {data_cls} is not supported\")\n            }\n        }\n    }\n}\n\nfn catalog_replay_records<T>(records: Vec<T>) -> Vec<CatalogReplayRecord>\nwhere\n    T: Into<CatalogReplayData>,\n{\n    records\n        .into_iter()\n        .map(Into::into)\n        .map(CatalogReplayRecord::from_data)\n        .collect()\n}\n\n#[cfg(test)]\nmod tests {","sourceCodeStart":90,"sourceCodeEnd":126,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/event_store/src/replay/catalog.rs#L90-L126","documentation":"load_slice in the catalog replay loader dispatches on the data class (data_cls) and only supports the implemented catalog record types; any other class string hits the catch-all and bails. It means replay from catalog for that data type is not implemented.","triggerScenarios":"Requesting a catalog replay load_slice with a data_cls for which no match arm exists (an unimplemented/unsupported data class), e.g. a newer data type not yet wired into the replay loader.","commonSituations":"Running replay with a data type the event store's catalog loader doesn't cover; upgrading the writer to produce a new catalog class while the replay loader lags behind; typo'd data class string in configuration.","solutions":["Use one of the supported catalog replay data classes for replay","Implement a match arm in load_slice for the needed data class (read files via the existing catalog helpers and map through catalog_replay_records)","Fix the data_cls string in your replay config to the exact supported name"],"exampleFix":"// before\nreplay.load_slice(\"MyQuotes\", start, end, ...)?\n// after\n// implement:\ndata_cls @ \"MyQuotes\" => Ok(catalog_replay_records(read_myquotes_files(files)?)),\n// or use a supported class:\nreplay.load_slice(\"QuoteTick\", start, end, ...)?","handlingStrategy":"try-catch","validationCode":"const SUPPORTED: &[&str] = &[\"QuoteTick\", \"TradeTick\", \"Bar\", ...];\nassert!(SUPPORTED.contains(&data_cls), \"catalog replay unsupported for {data_cls}\");","typeGuard":null,"tryCatchPattern":"match load_slice(data_cls, ...) {\n    Err(e) if e.to_string().contains(\"is not supported\") => eprintln!(\"fallback: replay {data_cls} via raw reader\"),\n    other => other?,\n}","preventionTips":["Check the supported data-class list in the replay catalog loader before configuring replay","Keep writer and loader class registries in sync when adding data types","Validate data_cls strings in config at startup"],"tags":["rust","replay","catalog","unsupported"],"backgroundTag":"unsupported-operation","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}