{"record":{"id":"ebe0ea93fb89e7c5","repo":"risingwavelabs/risingwave","slug":"unsupported-scheme","errorCode":null,"errorMessage":"Unsupported scheme: {}","messagePattern":"Unsupported scheme: (.+?)","errorType":"validation","errorClass":"ConnectorError","httpStatus":null,"severity":"error","filePath":"src/connector/src/connector_common/connection.rs","lineNumber":260,"sourceCode":"                    op.check().await?;\n                }\n                \"azblob\" => {\n                    let mut builder = Azblob::default();\n                    if let Some(account_name) = &common.azblob_account_name {\n                        builder = builder.account_name(account_name);\n                    }\n                    if let Some(azblob_account_key) = &common.azblob_account_key {\n                        builder = builder.account_key(azblob_account_key);\n                    }\n                    if let Some(azblob_endpoint_url) = &common.azblob_endpoint_url {\n                        builder = builder.endpoint(azblob_endpoint_url);\n                    }\n                    builder = builder.root(root.as_str()).container(bucket.as_str());\n                    let op = Operator::new(builder)?;\n                    op.check().await?;\n                }\n                _ => {\n                    bail!(\"Unsupported scheme: {}\", scheme);\n                }\n            }\n        }\n\n        if env_var_is_true(DISABLE_DEFAULT_CREDENTIAL)\n            && matches!(common.enable_config_load, Some(true))\n        {\n            bail!(\"`enable_config_load` can't be enabled in this environment\");\n        }\n\n        if common.hosted_catalog.unwrap_or(false) {\n            // If `hosted_catalog` is set, we don't need to test the catalog, but just ensure no catalog fields are set.\n            if common.catalog_type.is_some() {\n                bail!(\"`catalog.type` must not be set when `hosted_catalog` is set\");\n            }\n            if common.catalog_uri.is_some() {\n                bail!(\"`catalog.uri` must not be set when `hosted_catalog` is set\");\n            }","sourceCodeStart":242,"sourceCodeEnd":278,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/connector_common/connection.rs#L242-L278","documentation":"Raised in `IcebergConnection::validate_connection` when the scheme of `warehouse.path` is not one of the supported object-store schemes: s3/s3a (S3), gs/gcs (GCS), azblob (Azure Blob). After parsing the warehouse URL, the validator dispatches on the scheme and bails for anything unrecognized.","triggerScenarios":"Setting `warehouse.path` to a URL whose scheme is outside {s3, s3a, gs, gcs, azblob} — e.g. `wasb://`, `abfs://`, `file:///`, `oss://`, or a malformed URL whose host component was mis-parsed as a scheme.","commonSituations":"Using Azure Data Lake Gen2 URIs (`abfss://`) or OSS URIs which the validator does not accept; using a local filesystem path; typos like `s3s://`; pasting a `https://` endpoint as the warehouse path.","solutions":["Rewrite `warehouse.path` with a supported scheme: `s3://bucket/root`, `s3a://bucket/root`, `gs://bucket/root`, `gcs://bucket/root`, or `azblob://container/root`.","For Azure, use the `azblob://` scheme form (container is the host) rather than `abfss://`/`wasb://`.","Remove any leading `https://` or filesystem path and express the warehouse as an object-store URI."],"exampleFix":"// before\nwarehouse.path='abfss://mycontainer@account.dfs.core.windows.net/warehouse'\n// after\nwarehouse.path='azblob://mycontainer/warehouse'","handlingStrategy":"validation","validationCode":"const OK: [&str;5] = [\"s3\",\"s3a\",\"gs\",\"gcs\",\"azblob\"];\nlet scheme = warehouse_path.split(\"://\").next().unwrap_or(\"\");\nif !OK.contains(&scheme) { return Err(format!(\"unsupported warehouse scheme: {}\", scheme)); }","typeGuard":"fn supported_warehouse(p: &str) -> bool {\n    [\"s3://\",\"s3a://\",\"gs://\",\"gcs://\",\"azblob://\"].iter().any(|pre| p.starts_with(pre))\n}","tryCatchPattern":"if let Err(e) = conn.validate_connection().await {\n    if e.to_string().starts_with(\"Unsupported scheme:\") {\n        return Err(UserError::UnsupportedWarehouseScheme(e.to_string()));\n    }\n    return Err(e.into());\n}","preventionTips":["Map cloud storage URIs to supported schemes before configuring (abfss→azblob form, oss→s3-compatible endpoint)","Never use file:// or https:// as warehouse.path","Test the warehouse URL parses with the expected scheme/bucket shape"],"tags":["iceberg","validation","object-storage","url-scheme"],"backgroundTag":"invalid-argument-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"}