{"record":{"id":"25ce8e9a0c08deaf","repo":"risingwavelabs/risingwave","slug":"unsupported-parallelism-0","errorCode":null,"errorMessage":"Unsupported parallelism: {0}","messagePattern":"Unsupported parallelism: (.+?)","errorType":"validation","errorClass":"ConfigParallelismParseError","httpStatus":null,"severity":"error","filePath":"src/common/src/session_config/parallelism.rs","lineNumber":55,"sourceCode":"}\n\npub const DEFAULT_GLOBAL_STREAMING_PARALLELISM: ConfigParallelism = bounded_parallelism(64);\npub const DEFAULT_TABLE_SOURCE_STREAMING_PARALLELISM: ConfigParallelism = bounded_parallelism(4);\npub const DEFAULT_SINK_STREAMING_PARALLELISM: ConfigParallelism = bounded_parallelism(8);\n\n#[derive(Copy, Debug, Clone, PartialEq, Default)]\npub enum ConfigParallelism {\n    #[default]\n    Default,\n    Fixed(NonZeroU64),\n    Adaptive,\n    Bounded(NonZeroU64),\n    Ratio(f32),\n}\n\n#[derive(Error, Debug)]\npub enum ConfigParallelismParseError {\n    #[error(\"Unsupported parallelism: {0}\")]\n    UnsupportedParallelism(String),\n\n    #[error(\"Parse error: {0}\")]\n    ParseIntError(#[from] ParseIntError),\n\n    #[error(transparent)]\n    StrategyParseError(#[from] ParallelismStrategyParseError),\n}\n\nimpl FromStr for ConfigParallelism {\n    type Err = ConfigParallelismParseError;\n\n    fn from_str(s: &str) -> Result<Self, Self::Err> {\n        match s.to_ascii_lowercase().as_str() {\n            KEYWORD_DEFAULT => return Ok(ConfigParallelism::Default),\n            KEYWORD_ADAPTIVE | KEYWORD_AUTO => return Ok(ConfigParallelism::Adaptive),\n            _ => {}\n        }","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/common/src/session_config/parallelism.rs#L37-L73","documentation":"ConfigParallelismParseError::UnsupportedParallelism is thrown when the value of a parallelism-related session/system config is a string that matches none of the supported forms (Auto, Default, a fixed Bounded number, or Ratio). The parser in src/common/src/session_config/parallelism.rs matches the input string against known strategy keywords and formats, and any other string produces this error carrying the offending input.","triggerScenarios":"Setting a parallelism config (e.g. STREAMING_PARALLELISM / PARALLELISM related parameter) to an arbitrary unrecognized string such as 'max', 'auto2', 'adaptive!', or '100x' instead of 'auto', 'default', a positive integer, or 'ratio(0.5)'.","commonSituations":"Typo when setting the parallelism parameter; copying syntax from another database; quoting mistakes that leave stray characters; using an old syntax removed in a newer version.","solutions":["Use one of the supported values: 'auto', 'default', a positive integer like '8', or 'ratio(0.5)'.","Check for typos or stray whitespace/characters in the configured value.","Consult the parallelism docs in RisingWave for the accepted strategy syntax."],"exampleFix":"// before\nSET streaming_parallelism = 'maximum';\n// after\nSET streaming_parallelism = 'auto';","handlingStrategy":"validation","validationCode":"// Validate parallelism value before setting\nconst VALID_STRATEGIES: [&str; 2] = [\"auto\", \"default\"];\nfn is_valid_parallelism(v: &str) -> bool {\n    VALID_STRATEGIES.contains(&v)\n        || v.parse::<u64>().map(|n| n > 0).unwrap_or(false)\n        || (v.starts_with(\"ratio(\") && v.ends_with(')'))\n}","typeGuard":null,"tryCatchPattern":"match ConfigParallelism::from_str(&value) {\n    Ok(p) => apply(p),\n    Err(ConfigParallelismParseError::UnsupportedParallelism(s)) => {\n        eprintln!(\"'{s}' is not a valid parallelism; use auto|default|<int>|ratio(x)\");\n    }\n    Err(e) => return Err(e.into()),\n}","preventionTips":["Only use documented forms: auto, default, a positive integer, or ratio(x).","Trim whitespace and quotes from values sourced from env vars or YAML before setting.","Centralize parallelism value construction in one helper with validation."],"tags":["config","parallelism","parse","risingwave"],"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-14T16:17:12.679Z"}