{"record":{"id":"01ce5cebb8202e5f","repo":"nautechsystems/nautilus_trader","slug":"cloud-storage-support-requires-the-cloud-feature","errorCode":null,"errorMessage":"Cloud storage support requires the 'cloud' feature: {uri}","messagePattern":"Cloud storage support requires the 'cloud' feature: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/persistence/src/parquet.rs","lineNumber":549,"sourceCode":"        }\n        #[cfg(feature = \"cloud\")]\n        s if s.starts_with(\"az://\") => create_azure_store(&uri, storage_options),\n        #[cfg(feature = \"cloud\")]\n        s if s.starts_with(\"abfs://\") => create_abfs_store(&uri, storage_options),\n        #[cfg(feature = \"cloud\")]\n        s if s.starts_with(\"http://\") || s.starts_with(\"https://\") => {\n            create_http_store(&uri, storage_options)\n        }\n        #[cfg(not(feature = \"cloud\"))]\n        s if s.starts_with(\"s3://\")\n            || s.starts_with(\"gs://\")\n            || s.starts_with(\"gcs://\")\n            || s.starts_with(\"az://\")\n            || s.starts_with(\"abfs://\")\n            || s.starts_with(\"http://\")\n            || s.starts_with(\"https://\") =>\n        {\n            anyhow::bail!(\"Cloud storage support requires the 'cloud' feature: {uri}\")\n        }\n        s if s.starts_with(\"file://\") => create_local_store(&uri, true),\n        _ => create_local_store(&uri, false), // Fallback: assume local path\n    }?;\n\n    let kind = Url::parse(&original_uri)\n        .ok()\n        .filter(|url| is_remote_uri_scheme(url.scheme()))\n        .map(|_| {\n            remote_store_root_url(&original_uri)\n                .map(|store_root_url| ObjectStoreLocationKind::Remote { store_root_url })\n        })\n        .transpose()?\n        .unwrap_or(ObjectStoreLocationKind::Local);\n\n    Ok(ObjectStoreLocation {\n        object_store,\n        base_path,","sourceCodeStart":531,"sourceCodeEnd":567,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/persistence/src/parquet.rs#L531-L567","documentation":"create_object_store_location_from_path recognizes cloud storage URIs (s3, gs/gcs, azure/az/abfs, http/https) but this build of nautilus-persistence was compiled without the 'cloud' feature, so no cloud object store implementations are available. It bails instead of silently failing later.","triggerScenarios":"Creating a ParquetDataCatalog (or calling from_uri / create_object_store_from_path / py_new) with a URI like s3://bucket/path, gcs://..., az://..., or https://... while the crate was built without features = [\"cloud\"].","commonSituations":"Using a slim/pure-Rust build in Docker or CI; default cargo build without extra features; copying configuration from a cloud deployment to a local-only build.","solutions":["Rebuild with the cloud feature: add features = [\"cloud\"] to nautilus-persistence in Cargo.toml or run cargo build --features cloud.","Until rebuilt, switch the catalog URI to a local path (file:// or plain path).","In Python distributions, install a build/wheel that includes cloud storage support.","If only local storage is intended, correct the URI scheme, which was likely copied by mistake."],"exampleFix":"// before — Cargo.toml\nnautilus-persistence = \"0.x\"\n// after\nnautilus-persistence = { version = \"0.x\", features = [\"cloud\"] }","handlingStrategy":"validation","validationCode":"const CLOUD_SCHEMES: [&str; 7] = [\"s3://\", \"gs://\", \"gcs://\", \"az://\", \"abfs://\", \"http://\", \"https://\"];\nfn needs_cloud_feature(uri: &str) -> bool {\n    CLOUD_SCHEMES.iter().any(|s| uri.starts_with(s))\n}\n// if needs_cloud_feature(uri) { assert cloud feature enabled at startup }","typeGuard":null,"tryCatchPattern":"match ParquetDataCatalog::from_uri(uri, None) {\n    Err(e) if e.to_string().contains(\"requires the 'cloud' feature\") => {\n        // fall back to a local file:// catalog or rebuild with --features cloud\n    }\n    other => other?,\n}","preventionTips":["Add features = [\"cloud\"] to nautilus-persistence whenever URIs may point at S3/GCS/Azure/HTTP.","Fail fast at startup: check the URI scheme against enabled features before opening catalogs.","In CI/containers, use the same feature set as production deployments."],"tags":["rust","object-store","feature-flags","cloud-storage"],"backgroundTag":"feature-not-enabled","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"}