{"record":{"id":"784d3ede4a66cd8e","repo":"GoogleContainerTools/jib","slug":"unable-to-decrypt-proxy-info-from-settings-xml","errorCode":null,"errorMessage":"Unable to decrypt proxy info from settings.xml: ${problem}","messagePattern":"Unable to decrypt proxy info from settings\\.xml: (.+?)","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/MavenSettingsProxyProvider.java","lineNumber":71,"sourceCode":"      }\n      settings.getProxies().stream()\n          .filter(Proxy::isActive)\n          .filter(proxy -> protocol.equals(proxy.getProtocol()))\n          .findFirst()\n          .ifPresent(proxies::add);\n    }\n\n    if (proxies.isEmpty()) {\n      return;\n    }\n\n    SettingsDecryptionRequest request = new DefaultSettingsDecryptionRequest().setProxies(proxies);\n    SettingsDecryptionResult result = decrypter.decrypt(request);\n\n    for (SettingsProblem problem : result.getProblems()) {\n      if (problem.getSeverity() == SettingsProblem.Severity.ERROR\n          || problem.getSeverity() == SettingsProblem.Severity.FATAL) {\n        throw new MojoExecutionException(\n            \"Unable to decrypt proxy info from settings.xml: \" + problem);\n      }\n    }\n\n    result.getProxies().forEach(MavenSettingsProxyProvider::setProxyProperties);\n  }\n\n  /**\n   * Set proxy system properties based on Maven proxy configuration.\n   *\n   * @param proxy Maven proxy settings\n   */\n  @VisibleForTesting\n  static void setProxyProperties(Proxy proxy) {\n    String protocol = proxy.getProtocol();\n\n    setPropertySafe(protocol + \".proxyHost\", proxy.getHost());\n    setPropertySafe(protocol + \".proxyPort\", String.valueOf(proxy.getPort()));","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/MavenSettingsProxyProvider.java#L53-L89","documentation":"MavenSettingsProxyProvider decrypts server passwords for proxies configured in Maven's settings.xml using the Maven settings decrypter. When the decryption reports any ERROR- or FATAL-severity problem, activation of HTTP/HTTPS proxies fails with this MojoExecutionException so Jib does not proceed with broken proxy credentials.","triggerScenarios":"settings.xml contains <proxies> with encrypted <password> entries that cannot be decrypted: missing/unreadable settings-security.xml, master password mismatch, ciphertext corrupted, or decrypter misconfigured.","commonSituations":"Passwords encrypted with 'mvn --encrypt-password' on a machine with a different settings-security.xml master password; copying encrypted passwords between machines; empty or malformed settings-security.xml at ~/.m2/settings-security.xml; typo in the encrypted string.","solutions":["Read the <problem> detail appended to the message — it names the exact decryption issue and which proxy entry failed.","Re-encrypt the proxy password on the current machine: create ~/.m2/settings-security.xml via 'mvn --encrypt-master-password' then 'mvn --encrypt-password'.","Use a plaintext password in settings.xml temporarily to isolate whether encryption setup is the issue.","Ensure the same settings-security.xml used for encryption is present and readable at build time (CI machines need it too)."],"exampleFix":"// before (settings.xml)\n<proxy><password>{corruptedCipherText=}</password></proxy>\n\n// regenerate\nmvn --encrypt-master-password  # -> settings-security.xml\nmvn --encrypt-password myPassword  # -> paste into <password>","handlingStrategy":"validation","validationCode":"// Pre-check decryption setup before building:\n// test that ~/.m2/settings-security.xml exists and decrypt works:\n// mvn help:effective-settings  (decrypted settings are echoed; failure surfaces here first)\nif (!java.nio.file.Files.exists(java.nio.file.Path.of(System.getProperty(\"user.home\"), \".m2\", \"settings-security.xml\"))) {\n  throw new IllegalStateException(\"Create settings-security.xml via 'mvn --encrypt-master-password' first\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  // jib build using settings.xml proxies\n} catch (MojoExecutionException e) {\n  if (e.getMessage().startsWith(\"Unable to decrypt proxy info from settings.xml\")) {\n    // re-encrypt password on this machine or use plaintext to isolate\n  }\n  throw e;\n}","preventionTips":["Encrypt passwords on the same machine/environment where the build runs.","Provision ~/.m2/settings-security.xml on CI agents before builds.","Verify encrypted strings with 'mvn help:effective-settings' after editing settings.xml.","Avoid copy-pasting ciphertext between machines with different master passwords."],"tags":["maven","settings-xml","proxy","decryption"],"backgroundTag":"missing-credentials","analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}