{"record":{"id":"fea6ae5e42e3833e","repo":"prestodb/presto","slug":"druid-metadata-error","errorCode":"DRUID_METADATA_ERROR","errorMessage":"Unsupported segment filesystem: %s","messagePattern":"Unsupported segment filesystem: (.+?)","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-druid/src/main/java/com/facebook/presto/druid/metadata/DruidSegmentInfo.java","lineNumber":160,"sourceCode":"            switch (DeepStorageType.fromType(type)) {\n                case S3:\n                    final String s3schema = S3A_SCHEMA.equals(loadSpec.get(DEEP_STORAGE_S3_SCHEMA_KEY)) ? S3A_SCHEMA : S3N_SCHEMA;\n                    segmentLocURI = URI.create(format(\"%s://%s/%s\", s3schema, loadSpec.get(DEEP_STORAGE_BUCKET_KEY), loadSpec.get(\"key\")));\n                    break;\n                case HDFS:\n                    segmentLocURI = URI.create(loadSpec.get(DEEP_STORAGE_PATH_KEY));\n                    break;\n                case GCS:\n                    segmentLocURI = URI.create(\n                            format(\"gs://%s/%s\",\n                                loadSpec.get(DEEP_STORAGE_BUCKET_KEY),\n                                URLEncoder.encode(loadSpec.get(DEEP_STORAGE_PATH_KEY), \"UTF-8\")));\n                    break;\n                case LOCAL:\n                    segmentLocURI = new URI(\"file\", null, loadSpec.get(DEEP_STORAGE_PATH_KEY), null, null);\n                    break;\n                default:\n                    throw new PrestoException(DRUID_METADATA_ERROR, format(\"Unsupported segment filesystem: %s\", type));\n            }\n        }\n        catch (URISyntaxException | UnsupportedEncodingException e) {\n            throw new PrestoException(DRUID_METADATA_ERROR, e);\n        }\n        return segmentLocURI;\n    }\n\n    @Override\n    public int hashCode()\n    {\n        return Objects.hash(dataSource, version, loadSpecification, shardSpecification, binaryVersion, size);\n    }\n\n    @Override\n    public boolean equals(Object obj)\n    {\n        if (this == obj) {","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-druid/src/main/java/com/facebook/presto/druid/metadata/DruidSegmentInfo.java#L142-L178","documentation":"DruidSegmentInfo.getDeepStoragePath() builds a URI for a segment based on the deep storage 'type' in the segment's loadSpec (S3, HDFS, GS, LOCAL). When the loadSpec type is not one of the recognized filesystems, it throws DRUID_METADATA_ERROR with 'Unsupported segment filesystem', because the connector cannot construct a path to fetch the segment.","triggerScenarios":"Reading a Druid segment whose metadata loadSpec deep-storage type falls into the default branch of the switch — e.g. type values like azure, s3_hadoop, or a differently-cased/unknown string — from getDeepStoragePath, which is called by segmentPath/createPageSource and the various testDeepStoragePathOn* helpers.","commonSituations":"Druid cluster configured with a deep storage backend (e.g. Azure Blob, S3 via Hadoop) that the Presto Druid connector doesn't support; connector too old to know the storage type; loadSpec JSON typed with unexpected casing or a typo in druid.storage.type.","solutions":["Check druid.storage.type / the segment loadSpec 'type' value in Druid metadata; switch the Druid cluster to a supported type (s3, hdfs, gs, or local).","Upgrade Presto to a connector version that supports the segment's storage type if it was added in newer releases.","If the type is correct but unrecognized due to casing/typos, fix the loadSpec in the Druid metadata DB.","Copy/serve the segments from a supported filesystem so the connector can construct a valid deep-storage path."],"exampleFix":"// before (Druid runtime.properties)\ndruid.storage.type=azure\n\n// after (use a storage backend the connector understands)\ndruid.storage.type=s3\ndruid.storage.bucket=my-bucket","handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":["druid","metadata","deep-storage","unsupported-filesystem"],"backgroundTag":"unsupported-storage-backend","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}