{"record":{"id":"1b321286ea16c2b9","repo":"risingwavelabs/risingwave","slug":"unrecognized-config-entry-0","errorCode":null,"errorMessage":"Unrecognized config entry `{0}`","messagePattern":"Unrecognized config entry `(.+?)`","errorType":"validation","errorClass":"SessionConfigError","httpStatus":null,"severity":"error","filePath":"src/common/src/session_config/mod.rs","lineNumber":61,"sourceCode":"use crate::hash::VirtualNode;\nuse crate::session_config::parallelism::{ConfigBackfillParallelism, ConfigParallelism};\nuse crate::session_config::sink_decouple::SinkDecouple;\nuse crate::session_config::transaction_isolation_level::IsolationLevel;\npub use crate::session_config::visibility_mode::VisibilityMode;\nuse crate::{PG_VERSION, SERVER_ENCODING, SERVER_VERSION_NUM, STANDARD_CONFORMING_STRINGS};\n\npub const SESSION_CONFIG_LIST_SEP: &str = \", \";\n\n#[derive(Error, Debug)]\npub enum SessionConfigError {\n    #[error(\"Invalid value `{value}` for `{entry}`\")]\n    InvalidValue {\n        entry: &'static str,\n        value: String,\n        source: anyhow::Error,\n    },\n\n    #[error(\"Unrecognized config entry `{0}`\")]\n    UnrecognizedEntry(String),\n}\n\ntype SessionConfigResult<T> = std::result::Result<T, SessionConfigError>;\n\nconst AUTO_LOCALITY_BACKFILL_MIN_SIZE: u64 = 10 * 1024 * 1024 * 1024;\n\nfn default_auto_locality_backfill_min_size() -> u64 {\n    AUTO_LOCALITY_BACKFILL_MIN_SIZE\n}\n\nfn default_legacy_locality_backfill_mode() -> LocalityBackfillMode {\n    LocalityBackfillMode::Always\n}\n\n// NOTE(kwannoel): We declare it separately as a constant,\n// otherwise seems like it can't infer the type of -1 when written inline.\nconst DISABLE_BACKFILL_RATE_LIMIT: i32 = -1;","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/common/src/session_config/mod.rs#L43-L79","documentation":"SessionConfigError variant fired when a SET/show-style configuration key does not match any known session config entry. It is a validation guard on user-supplied config names: any key not registered in the session config map (a typo or a Postgres-only variable RisingWave does not support) triggers it.","triggerScenarios":"Running `SET <unknown_entry> = <value>`, `SHOW <unknown_entry>`, or `RESET <unknown_entry>` (via the session config lookup) with an identifier not in RisingWave's supported config list.","commonSituations":"Porting Postgres applications that set GUCs RisingWave does not implement (e.g. `SET synchronous_commit`); typos in GUC names; tooling auto-configuring sessions with unsupported parameters.","solutions":["Check RisingWave's supported session config list and use only recognized entry names.","Fix the typo in the entry name (entry names are case-insensitive but must match exactly otherwise).","Remove the SET/SHOW/RESET for unsupported Postgres GUCs, or guard them client-side.","If the GUC should exist, implement it in the session config module."],"exampleFix":"-- before\nSET synchronous_commit = off;\n-- after (remove unsupported GUC or use supported alternative)\n-- no-op: synchronous_commit not supported in RisingWave","handlingStrategy":"try-catch","validationCode":"const KNOWN_GUCS = new Set(['search_path','server_version','timezone','server_encoding']);\nif (!KNOWN_GUCS.has(entry.toLowerCase())) throw new Error(`unsupported GUC ${entry}`);","typeGuard":null,"tryCatchPattern":"match session.set_config(entry, value) {\n    Err(SessionConfigError::UnrecognizedEntry(name)) =>\n        eprintln!(\"skipping unsupported setting: {name}\"),\n    Err(e) => return Err(e.into()),\n    Ok(_) => {}\n}","preventionTips":["Keep a list of RisingWave-supported GUCs in client tooling","Guard Postgres-originated SET statements against unsupported entries","Prefer SHOW over SET when probing for parameter support"],"tags":["rust","session-config","guc","unknown-parameter"],"backgroundTag":"missing-config-key","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"}