{"record":{"id":"76598bf8e7e7c52c","repo":"apache/hadoop","slug":"script-path-is-not-specified-via-fs-azure-shellkey","errorCode":null,"errorMessage":"Script path is not specified via fs.azure.shellkeyprovider.script","messagePattern":"Script path is not specified via fs\\.azure\\.shellkeyprovider\\.script","errorType":"validation","errorClass":"KeyProviderException","httpStatus":null,"severity":"error","filePath":"hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/ShellDecryptionKeyProvider.java","lineNumber":53,"sourceCode":" */\npublic class ShellDecryptionKeyProvider extends SimpleKeyProvider {\n  private static final Logger LOG = LoggerFactory.getLogger(ShellDecryptionKeyProvider.class);\n\n  @Override\n  public String getStorageAccountKey(String accountName, Configuration rawConfig)\n      throws KeyProviderException {\n    String envelope = super.getStorageAccountKey(accountName, rawConfig);\n\n    AbfsConfiguration abfsConfig;\n    try {\n      abfsConfig = new AbfsConfiguration(rawConfig, accountName);\n    } catch(IllegalAccessException | IOException e) {\n      throw new KeyProviderException(\"Unable to get key from credential provider for account \" + accountName, e);\n    }\n\n    final String command = abfsConfig.get(ConfigurationKeys.AZURE_KEY_ACCOUNT_SHELLKEYPROVIDER_SCRIPT);\n    if (command == null) {\n      throw new KeyProviderException(\n          \"Script path is not specified via fs.azure.shellkeyprovider.script\");\n    }\n\n    String[] cmd = command.split(\" \");\n    String[] cmdWithEnvelope = Arrays.copyOf(cmd, cmd.length + 1);\n    cmdWithEnvelope[cmdWithEnvelope.length - 1] = envelope;\n\n    String decryptedKey = null;\n    try {\n      decryptedKey = Shell.execCommand(cmdWithEnvelope);\n    } catch (IOException ex) {\n      throw new KeyProviderException(ex);\n    }\n\n    // trim any whitespace\n    return decryptedKey.trim();\n  }\n}","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/ShellDecryptionKeyProvider.java#L35-L71","documentation":"Error \"Script path is not specified via fs.azure.shellkeyprovider.script\" thrown in apache/hadoop.","triggerScenarios":"ShellDecryptionKeyProvider is used without configuring the script path property.","commonSituations":"See trigger scenarios.","solutions":["Set fs.azure.shellkeyprovider.script to the path of the key provisioning script.","Or configure a different key provider and remove the shell provider setting."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}