{"record":{"id":"30b3ba44eda623c2","repo":"apache/hadoop","slug":"wasb-driver-using-wasb-s-schema-is-no-longer-supp","errorCode":null,"errorMessage":"WASB Driver using wasb(s) schema is no longer supported. Instead use ABFS Driver for FNS account by changing the scheme to abfs(s).For more details contact askabfs@microsoft.com","messagePattern":"WASB Driver using wasb\\(s\\) schema is no longer supported\\. Instead use ABFS Driver for FNS account by changing the scheme to abfs\\(s\\)\\.For more details contact askabfs@microsoft\\.com","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java","lineNumber":74,"sourceCode":"  public static class Secure extends NativeAzureFileSystem {\n    @Override\n    public String getScheme() {\n      return SECURE_SCHEME;\n    }\n  }\n\n  /**\n   * Fails Any Attempt to use WASB FileSystem Implementation.\n   *\n   * @param uri  the URI of the file system\n   * @param conf the configuration\n   * @throws IOException              on IO problems\n   * @throws UnsupportedOperationException if the URI is invalid\n   */\n  @Override\n  public void initialize(URI uri, Configuration conf)\n      throws IOException, UnsupportedOperationException {\n    throw new UnsupportedOperationException(WASB_INIT_ERROR_MESSAGE);\n  }\n\n  @Override\n  public String getScheme() {\n    return SCHEME;\n  }\n\n  @Override\n  public URI getUri() {\n    return null;\n  }\n\n  @Override\n  public FSDataInputStream open(final Path path, final int i)\n      throws IOException {\n    throw new UnsupportedOperationException(WASB_INIT_ERROR_MESSAGE);\n  }\n","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java#L56-L92","documentation":"NativeAzureFileSystem is the tombstone for the removed WASB driver (wasb:// and wasbs://, blob-based Azure storage, also registered via the Secure subclass). Its initialize() throws UnsupportedOperationException with WASB_INIT_ERROR_MESSAGE, directing users to the ABFS driver (abfs:// / abfss://) on a hierarchical-namespace (ADLS Gen2) account. Any attempt to create the filesystem - FileSystem.get / newInstance on a wasb URL, 'hadoop fs -ls wasb://...' - fails here before any storage call is made.","triggerScenarios":"FileSystem.get(new Path(\"wasb://container@account.blob.core.windows.net/dir\")); 'hadoop fs' commands on wasb:// or wasbs:// URLs; distcp, Hive or Spark jobs carrying wasb paths running on Hadoop 3.4.0 or later.","commonSituations":"Upgrading a cluster from Hadoop 3.3.x (or an older Azure HDInsight image) where WASB worked; legacy pipelines, cron jobs and metastore locations still holding wasb:// URLs; fs.azure.* WASB configuration carried forward into the new cluster.","solutions":["Change URIs from wasb:// to abfs:// and wasbs:// to abfss:// (e.g. abfs://container@account.dfs.core.windows.net/path)","Ensure the storage account has the hierarchical namespace (HNS / ADLS Gen2) enabled - ABFS requires it; migrate blob data with AzCopy or an Azure data-migration tool where needed","Replace WASB-era fs.azure.* keys with the ABFS authentication settings (fs.azure.account.auth.type, fs.azure.account.key.*, or OAuth) in core-site.xml","Sweep code, job definitions, Hive metastore locations and config files for 'wasb://' and 'wasbs://' to catch every reference"],"exampleFix":"# before\nhadoop fs -ls wasb://data@oldaccount.blob.core.windows.net/logs\n# after\nhadoop fs -ls abfs://data@newaccount.dfs.core.windows.net/logs","handlingStrategy":"validation","validationCode":"String scheme = path.toUri().getScheme();\nif (\"wasb\".equals(scheme) || \"wasbs\".equals(scheme)) {\n  throw new IllegalArgumentException(\n      \"WASB removed: rewrite \" + path + \" to abfs(s):// on an ADLS Gen2 account\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  FileSystem fs = path.getFileSystem(conf);\n} catch (UnsupportedOperationException e) {\n  if (e.getMessage().contains(\"ABFS Driver\")) {\n    // rewrite wasb:// -> abfs:// and retry with ABFS config\n  }\n}","preventionTips":["Fail fast on wasb/wasbs schemes at job submission time with a clear migration message","Sweep configs, metastores and job definitions for wasb:// during Hadoop 3.4+ upgrade planning","Enable hierarchical namespace on target storage accounts before cutover to ABFS"],"tags":["azure","wasb","abfs","adls-gen2","removed-feature","hadoop-azure"],"backgroundTag":"filesystem-driver-removed","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}