{"record":{"id":"6529d086b88d3501","repo":"risingwavelabs/risingwave","slug":"path-scheme-scheme-is-not-supported","errorCode":null,"errorMessage":"path scheme `{scheme}` is not supported","messagePattern":"path scheme `(.+?)` is not supported","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/connector/src/parser/utils.rs","lineNumber":116,"sourceCode":"/// * http/https, for common usage.\n/// * s3 file location format: <s3://bucket_name/file_name>\npub(super) async fn bytes_from_url(\n    url: &Url,\n    config: Option<&AwsAuthProps>,\n) -> ConnectorResult<Vec<u8>> {\n    match (url.scheme(), config) {\n        // TODO(Tao): support local file only when it's compiled in debug mode.\n        (\"file\", _) => {\n            let path = url\n                .to_file_path()\n                .ok()\n                .with_context(|| format!(\"illegal path: {url}\"))?;\n            Ok(std::fs::read(&path)\n                .with_context(|| format!(\"failed to read file from `{}`\", path.display()))?)\n        }\n        (\"https\" | \"http\", _) => Ok(download_from_http(url).await?.into()),\n        (\"s3\", Some(config)) => load_file_descriptor_from_s3(url, config).await,\n        (scheme, _) => bail!(\"path scheme `{scheme}` is not supported\"),\n    }\n}\n\npub fn extract_timestamp_from_meta(meta: &SourceMeta) -> DatumRef<'_> {\n    match meta {\n        SourceMeta::Kafka(kafka_meta) => kafka_meta.extract_timestamp(),\n        SourceMeta::DebeziumCdc(cdc_meta) => cdc_meta.extract_timestamp(),\n        SourceMeta::Kinesis(kinesis_meta) => kinesis_meta.extract_timestamp(),\n        _ => None,\n    }\n}\n\npub fn extract_cdc_meta_column<'a>(\n    cdc_meta: &'a DebeziumCdcMeta,\n    column_type: &additional_column::ColumnType,\n    column_name: &str,\n) -> AccessResult<DatumRef<'a>> {\n    match column_type {","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/connector/src/parser/utils.rs#L98-L134","documentation":"Error from bytes_from_url, a schema-fetch helper supporting only file and http/https (plus s3 with AWS config) URL schemes: the supplied schema-location URL used some other scheme, so the fetch was refused. It is a scheme allow-list guard — the scheme value in the message identifies what the user passed (e.g. ftp, gcs) and what to change.","triggerScenarios":"Setting schema.location (used by fetch_json_schema_and_map_to_columns and access builder 'new') to a URL whose scheme is not file/http/https/s3 — e.g. 'gs://bucket/schema.json' or 'hdfs://...'.","commonSituations":"GCS or Azure storage URLs pasted into schema.location; typos like 's3a://' or 'files://'; HDFS-hosted schemas in on-prem clusters.","solutions":["Change schema.location to a supported scheme: an https:// URL, an s3:// path (with the S3 config options), or a local file path.","For GCS/Azure schemas, download or mirror the file to S3/HTTP or a local path reachable by the RisingWave node.","Fix scheme typos (s3a:// -> s3://, missing scheme -> file path)."],"exampleFix":"// before\nschema.location = 'gs://my-bucket/schema.json'\n// after\nschema.location = 'https://my-bucket.s3.amazonaws.com/schema.json' // or s3://my-bucket/schema.json","handlingStrategy":"validation","validationCode":"fn validate_schema_location(loc: &str) -> Result<(), String> {\n    let ok = loc.starts_with(\"http://\") || loc.starts_with(\"https://\")\n        || loc.starts_with(\"s3://\") || loc.starts_with(\"file://\")\n        || std::path::Path::new(loc).is_file();\n    if ok { Ok(()) } else { Err(format!(\"unsupported scheme in schema.location: {loc}\")) }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Restrict schema.location to http(s), s3, or local file paths.","Mirror schemas from GCS/Azure/HDFS to S3 or HTTP for RisingWave.","Lint DDL for scheme typos (s3a://, gs://)."],"tags":["url","schema","unsupported-scheme","config"],"backgroundTag":"invalid-url","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"}