{"record":{"id":"efe34434f7de5c52","repo":"risingwavelabs/risingwave","slug":"cannot-parse-value-for-parameter","errorCode":null,"errorMessage":"cannot parse value for parameter '{}': {}","messagePattern":"cannot parse value for parameter '(.+?)': (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/meta/src/controller/system_param.rs","lineNumber":149,"sourceCode":"    };\n}\n\nfor_all_params!(impl_system_params_from_db);\nfor_all_params!(impl_merge_params);\nfor_all_params!(impl_system_params_to_models);\n\nimpl SystemParamsController {\n    pub async fn new(\n        sql_meta_store: SqlMetaStore,\n        notification_manager: NotificationManagerRef,\n        init_params: PbSystemParams,\n    ) -> MetaResult<Self> {\n        let db = sql_meta_store.conn;\n        let params = SystemParameter::find().all(&db).await?;\n        let params = merge_params(system_params_from_db(params)?, init_params);\n        tracing::info!(initial_params = ?SystemParamsReader::new(&params), \"initialize system parameters\");\n        check_missing_params(&params).map_err(|e| anyhow!(e))?;\n        validate_init_system_params(&params).map_err(|e| anyhow!(e))?;\n        let ctl = Self {\n            db,\n            notification_manager,\n            params: RwLock::new(params.clone()),\n            common_handler: CommonHandler::new(params.into()),\n        };\n        // flush to db.\n        ctl.flush_params().await?;\n\n        Ok(ctl)\n    }\n\n    pub async fn get_pb_params(&self) -> PbSystemParams {\n        self.params.read().await.clone()\n    }\n\n    pub async fn get_params(&self) -> SystemParamsReader {\n        self.params.read().await.clone().into()","sourceCodeStart":131,"sourceCodeEnd":167,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/src/controller/system_param.rs#L131-L167","documentation":"`SystemController::new` calls `validate_init_system_params`, which parses each merged system parameter's string value into its typed form; a value that cannot be parsed aborts startup with \"cannot parse value for parameter '{}': {}\". The first `{}` is the parameter name, the second is the underlying parse error.","triggerScenarios":"A row in the `system_parameter` table (or a bootstrap `init_params` value) contains a string that does not parse for that parameter's type — e.g. non-numeric text for an integer parameter, or a malformed limit string.","commonSituations":"Manual UPDATEs against the system_parameter table with typos; ALTER SYSTEM executed with an unvalidated value from an older frontend version; config values copied from a different cluster or version with different formats.","solutions":["Fix the stored value for the named parameter in the `system_parameter` table to a valid literal of the expected type, then restart the meta node.","Re-set the parameter via ALTER SYSTEM / the bootstrap config using a format accepted by the parameter's parser (the embedded error message tells you what failed).","If the value came from an upgrade, check the release notes for changed parameter formats and migrate the value accordingly.","Before writing values programmatically, run them through the same parsing/validation function used by `validate_init_system_params`."],"exampleFix":"-- before\nUPDATE system_parameter SET value = '10MB' WHERE name = 'barrier_interval_ms';\n-- after\nUPDATE system_parameter SET value = '1000' WHERE name = 'barrier_interval_ms';","handlingStrategy":"validation","validationCode":"// Parse every param with the same validator before persisting\nfor (name, value) in proposed_params {\n    validate_param_value(name, &value).map_err(|e| format!(\"cannot parse {} : {}\", name, e))?;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never hand-edit the system_parameter table; use ALTER SYSTEM","Run values through the parameter parser before writing them","Check release notes for parameter format changes between versions"],"tags":["meta","system-params","parsing"],"backgroundTag":"invalid-config-value","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}