{"record":{"id":"ca27922aadc92725","repo":"linera-io/linera-protocol","slug":"when-storage-is-not-selected-the-storage-service","errorCode":null,"errorMessage":"When storage is not selected, the storage-service needs to be enabled","messagePattern":"When storage is not selected, the storage-service needs to be enabled","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"linera-service/src/cli/net_up_utils.rs","lineNumber":58,"sourceCode":"                let binary = get_service_storage_binary().await?.display().to_string();\n                let service = StorageService::new(&service_endpoint, binary);\n                let service_guard = Some(service.run().await?);\n                let inner_storage_config = InnerStorageConfig::Service {\n                    endpoint: service_endpoint,\n                };\n                let namespace = \"table_default\".to_string();\n                let config = StorageConfig {\n                    inner_storage_config,\n                    namespace,\n                };\n                Ok(StorageConfigProvider {\n                    config,\n                    _service_guard: service_guard,\n                })\n            }\n            #[cfg(not(feature = \"storage-service\"))]\n            None => {\n                panic!(\"When storage is not selected, the storage-service needs to be enabled\");\n            }\n            #[cfg(feature = \"storage-service\")]\n            Some(storage) => {\n                let config = StorageConfig::from_str(storage)?;\n                Ok(StorageConfigProvider {\n                    config,\n                    _service_guard: None,\n                })\n            }\n            #[cfg(not(feature = \"storage-service\"))]\n            Some(storage) => {\n                let config = StorageConfig::from_str(storage)?;\n                Ok(StorageConfigProvider { config })\n            }\n        }\n    }\n\n    pub fn inner_storage_config(&self) -> &InnerStorageConfig {","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/linera-io/linera-protocol/blob/6c226ddcb332ef55118dc8d0aafbd093d5420899/linera-service/src/cli/net_up_utils.rs#L40-L76","documentation":"linera net up assembles local test networks. When no --storage option is given, it must fall back to an embedded storage service, but that fallback only exists in binaries compiled with the storage-service feature. Without the option and without the feature, StorageConfigProvider::new panics: there is no way to source a storage configuration.","triggerScenarios":"Running `linera net up` with no --storage argument on a linera binary compiled without the storage-service feature (e.g. a custom minimal build or default-features = false dependency graph).","commonSituations":"Building linera-service from source with a trimmed feature set; downstream crates that reuse net-up tooling in tests; using an old or stripped binary that predates the storage-service integration.","solutions":["Pass an explicit --storage option (e.g. --storage rocksdb:./tmp/dev-net or a service: URL) so the provider never needs the embedded fallback","Or build linera with the storage-service feature: cargo build --features storage-service (or install the official release binary, which includes it)","Verify with `linera net up --help` that the binary understands the storage options you pass"],"exampleFix":"# before\nlinera net up   # binary lacks storage-service feature\n\n# after (option 1: explicit storage)\nlinera net up --storage rocksdb:./tmp/dev-net\n# after (option 2: feature-enabled build)\ncargo build -p linera-service --features storage-service && ./target/debug/linera net up","handlingStrategy":"validation","validationCode":"# Shell: detect the unsupported combination before running\nlinera net up --help >/dev/null 2>&1 || exit 1\n# always pass storage explicitly to avoid the feature-dependent fallback:\nlinera net up --storage rocksdb:./tmp/dev-net","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin test scripts to always pass --storage","Build the linera binary with the storage-service feature if you rely on the embedded default","Smoke-test `linera net up` in CI with the exact binary artifact you ship"],"tags":["cli","net-up","local-network","feature-flags","storage","configuration"],"backgroundTag":"missing-compile-feature","analyzedSha":"6c226ddcb332ef55118dc8d0aafbd093d5420899","analyzedAt":"2026-08-22T22:49:09.787Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}