{"record":{"id":"c0c1b7b5d6ae1990","repo":"GoogleContainerTools/jib","slug":"ex-getcause-getmessage-null-null-exce","errorCode":null,"errorMessage":"${ex.getCause().getMessage() == null ? \"(null exception message)\" : ex.getCause().getMessage()}","messagePattern":"\\$\\{ex\\.getCause\\(\\)\\.getMessage\\(\\) == null \\? \"\\(null exception message\\)\" : ex\\.getCause\\(\\)\\.getMessage\\(\\)\\}","errorType":"exception","errorClass":"BuildStepsExecutionException","httpStatus":null,"severity":"error","filePath":"jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/JibBuildRunner.java","lineNumber":284,"sourceCode":"            helpfulSuggestions);\n      } else {\n        // Unknown cause\n        throw new BuildStepsExecutionException(helpfulSuggestions.none(), ex);\n      }\n\n    } catch (UnknownHostException ex) {\n      throw new BuildStepsExecutionException(helpfulSuggestions.forUnknownHost(), ex);\n\n    } catch (InsecureRegistryException ex) {\n      throw new BuildStepsExecutionException(helpfulSuggestions.forInsecureRegistry(), ex);\n\n    } catch (RegistryException ex) {\n      String message = Verify.verifyNotNull(ex.getMessage()); // keep null-away happy\n      throw new BuildStepsExecutionException(message, ex);\n\n    } catch (ExecutionException ex) {\n      String message = ex.getCause().getMessage();\n      throw new BuildStepsExecutionException(\n          message == null ? \"(null exception message)\" : message, ex.getCause());\n\n    } catch (InterruptedException ex) {\n      Thread.currentThread().interrupt();\n      throw new BuildStepsExecutionException(helpfulSuggestions.none(), ex);\n    }\n\n    throw new IllegalStateException(\"unreachable\");\n  }\n\n  /**\n   * Set the location where the image digest will be saved. If {@code null} then digest is not\n   * saved.\n   *\n   * @param imageDigestOutputPath the location to write the image digest or {@code null} to skip\n   * @return this\n   */\n  public JibBuildRunner writeImageDigest(@Nullable Path imageDigestOutputPath) {","sourceCodeStart":266,"sourceCodeEnd":302,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/JibBuildRunner.java#L266-L302","documentation":"BuildStepsExecutionException thrown in JibBuildRunner.runBuild() for an UnknownHostException: the target registry's hostname could not be resolved by DNS. The message interpolates the underlying cause's text (or '(null exception message)' when null) because the JVM only reports the unresolvable host name. The build never made a network connection — this is a name-resolution failure, typical of typos in the registry host, offline environments, or missing/corporate DNS configuration.","triggerScenarios":"Thrown at jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/JibBuildRunner.java:284 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the registry hostname in the image reference (e.g. use registry.example.com:5000 spelled correctly)","Verify DNS resolution (nslookup/dig) and network/VPN connectivity from the build machine","For offline builds, build with a local registry or configure a mirror/proxy"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}