{"record":{"id":"9a07701d3f1192f3","repo":"nautechsystems/nautilus_trader","slug":"invalid-schema-must-be-one-of-mbp-1-tbbo-bbo-1","errorCode":null,"errorMessage":"Invalid schema. Must be one of: mbp-1, tbbo, bbo-1s, bbo-1m, cmbp-1, tcbbo, cbbo-1s, cbbo-1m","messagePattern":"Invalid schema\\. Must be one of: mbp-1, tbbo, bbo-1s, bbo-1m, cmbp-1, tcbbo, cbbo-1s, cbbo-1m","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/databento/src/historical.rs","lineNumber":373,"sourceCode":"            .symbols\n            .first()\n            .ok_or_else(|| anyhow::anyhow!(\"No symbols provided\"))?;\n        let stype_in = infer_symbology_type(first_symbol);\n        let end = params.end.unwrap_or_else(|| self.clock.get_time_ns());\n        let time_range = get_date_time_range(params.start, end)?;\n        let schema = schema.unwrap_or_else(|| \"mbp-1\".to_string());\n        let dbn_schema = dbn::Schema::from_str(&schema)?;\n\n        match dbn_schema {\n            dbn::Schema::Mbp1\n            | dbn::Schema::Tbbo\n            | dbn::Schema::Bbo1S\n            | dbn::Schema::Bbo1M\n            | dbn::Schema::Cmbp1\n            | dbn::Schema::Tcbbo\n            | dbn::Schema::Cbbo1S\n            | dbn::Schema::Cbbo1M => (),\n            _ => anyhow::bail!(\n                \"Invalid schema. Must be one of: mbp-1, tbbo, bbo-1s, bbo-1m, cmbp-1, tcbbo, cbbo-1s, cbbo-1m\"\n            ),\n        }\n\n        let range_params = GetRangeParams::builder()\n            .dataset(params.dataset)\n            .date_time_range(time_range)\n            .symbols(symbols)\n            .stype_in(stype_in)\n            .schema(dbn_schema)\n            .maybe_limit(params.limit.and_then(NonZeroU64::new))\n            .build();\n\n        let price_precision_arg = params.price_precision;\n\n        let mut client = (*self.inner).clone();\n        let mut decoder = client\n            .timeseries()","sourceCodeStart":355,"sourceCodeEnd":391,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/databento/src/historical.rs#L355-L391","documentation":"`get_range_quotes` only supports quote-producing Databento schemas: mbp-1, tbbo, bbo-1s, bbo-1m, cmbp-1, tcbbo, cbbo-1s, cbbo-1m. Any other schema value passed in the request params causes this bail before the data request is made. It is an early input-validation guard against schemas whose records cannot be converted into `QuoteTick`.","triggerScenarios":"Calling `get_range_quotes` (historical quotes fetch) with `params.schema` set to e.g. `trades`, `ohlcv-1m`, `mbp-10`, or any schema outside the allow-list.","commonSituations":"Copy-pasting a schema string/enum from a trades or depth request into a quotes request; building the schema dynamically from config where the wrong value was configured; Databento adding a new schema not yet allow-listed.","solutions":["Set `schema` to one of the supported quote schemas (mbp-1, tbbo, bbo-1s, bbo-1m, cmbp-1, tcbbo, cbbo-1s, cbbo-1m).","If you need trades, call `get_range_trades` instead; for depth use `get_range_order_book_depth10`.","Validate/normalize the schema value in your config before constructing the request.","If a newly-released Databento schema is needed, update the adapter's match arm to support it."],"exampleFix":"// before\nlet params = params.schema(dbn::Schema::Trades);\nhistorical.get_range_quotes(params).await?;\n// after\nlet params = params.schema(dbn::Schema::Mbp1);\nhistorical.get_range_quotes(params).await?;","handlingStrategy":"validation","validationCode":"const QUOTE_SCHEMAS: &[dbn::Schema] = &[\n    dbn::Schema::Mbp1, dbn::Schema::Tbbo, dbn::Schema::Bbo1S,\n    dbn::Schema::Bbo1M, dbn::Schema::Cmbp1, dbn::Schema::Tcbbo,\n    dbn::Schema::Cbbo1S, dbn::Schema::Cbbo1M,\n];\nassert!(QUOTE_SCHEMAS.contains(&schema), \"unsupported quote schema\");","typeGuard":"fn is_quote_schema(s: dbn::Schema) -> bool {\n    matches!(s, dbn::Schema::Mbp1 | dbn::Schema::Tbbo | dbn::Schema::Bbo1S\n        | dbn::Schema::Bbo1M | dbn::Schema::Cmbp1 | dbn::Schema::Tcbbo\n        | dbn::Schema::Cbbo1S | dbn::Schema::Cbbo1M)\n}","tryCatchPattern":null,"preventionTips":["Map request intent (quotes vs trades vs depth) to the schema, not config strings.","Validate configured schema values at startup.","Use get_range_quotes only with quote-producing schemas."],"tags":["databento","schema","validation","historical"],"backgroundTag":"invalid-enum-value","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"}