{"record":{"id":"02b744b44c67ecb7","repo":"GoogleContainerTools/jib","slug":"invalid-image-reference-invalidreference-perha","errorCode":null,"errorMessage":"Invalid image reference ${invalidReference}, perhaps you should check that the reference is formatted correctly according to https://docs.docker.com/engine/reference/commandline/tag/#extended-description\nFor example, slash-separated name components cannot have uppercase letters","messagePattern":"Invalid image reference (.+?), perhaps you should check that the reference is formatted correctly according to https://docs\\.docker\\.com/engine/reference/commandline/tag/#extended-description\nFor example, slash-separated name components cannot have uppercase letters","errorType":"console","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/BuildDockerTask.java","lineNumber":181,"sourceCode":"          \"container.creationTime should be an ISO 8601 date-time (see \"\n              + \"DateTimeFormatter.ISO_DATE_TIME) or a special keyword (\\\"EPOCH\\\", \"\n              + \"\\\"USE_CURRENT_TIMESTAMP\\\"): \"\n              + ex.getInvalidCreationTime(),\n          ex);\n\n    } catch (JibPluginExtensionException ex) {\n      String extensionName = ex.getExtensionClass().getName();\n      throw new GradleException(\n          \"error running extension '\" + extensionName + \"': \" + ex.getMessage(), ex);\n\n    } catch (IncompatibleBaseImageJavaVersionException ex) {\n      throw new GradleException(\n          HelpfulSuggestions.forIncompatibleBaseImageJavaVersionForGradle(\n              ex.getBaseImageMajorJavaVersion(), ex.getProjectMajorJavaVersion()),\n          ex);\n\n    } catch (InvalidImageReferenceException ex) {\n      throw new GradleException(\n          HelpfulSuggestions.forInvalidImageReference(ex.getInvalidReference()), ex);\n\n    } catch (ExtraDirectoryNotFoundException ex) {\n      throw new GradleException(\n          \"extraDirectories.paths contain \\\"from\\\" directory that doesn't exist locally: \"\n              + ex.getPath(),\n          ex);\n    } finally {\n      tempDirectoryProvider.close();\n      TaskCommon.finishUpdateChecker(projectProperties, updateCheckFuture);\n      projectProperties.waitForLoggingThread();\n    }\n  }\n\n  @Override\n  public BuildDockerTask setJibExtension(JibExtension jibExtension) {\n    this.jibExtension = jibExtension;\n    return this;","sourceCodeStart":163,"sourceCodeEnd":199,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/BuildDockerTask.java#L163-L199","documentation":"Thrown when the configured image reference (jib.to.image, jib.from.image, tags, etc.) cannot be parsed as a valid Docker/OCI image reference. Jib wraps InvalidImageReferenceException and appends HelpfulSuggestions.forInvalidImageReference, which points to Docker's tag documentation and notes that slash-separated name components cannot contain uppercase letters.","triggerScenarios":"Setting to.image or from.image with uppercase characters in a repository path (e.g. 'MyApp'), missing registry/tag separators, invalid characters (spaces, underscores in wrong position), or malformed registry hostnames.","commonSituations":"Using a project name with uppercase letters directly as the image name (common on macOS/Windows where Docker allows it locally), typos in registry URLs, or interpolating Gradle project properties that contain invalid characters into the image reference.","solutions":["Lowercase all repository/name components, e.g. 'gcr.io/myproject/myapp'","Validate the reference against Docker's tag/name grammar (registry/repo:tag) — see the URL in the message","Remove spaces or illegal characters; quote parts that undergo Gradle string interpolation","Add an explicit tag (e.g. ':latest' or a version) if the reference is ambiguous"],"exampleFix":"// before\njib { to { image = 'gcr.io/MyProject/MyApp' } }\n// after\njib { to { image = 'gcr.io/myproject/myapp:v1.0.0' } }","handlingStrategy":"validation","validationCode":"def ref = jib.to.image\nif (ref && (ref =~ /\\s|[A-Z]/)) {\n  throw new GradleException(\"Image reference contains invalid characters (spaces/uppercase): $ref\")\n}","typeGuard":null,"tryCatchPattern":"try { jibBuild.run() } catch (InvalidImageReferenceException | GradleException e) { if (e.message?.contains('Invalid image reference')) { logger.error(e.message + \" — lowercase repo components, check registry/repo:tag format\") }; throw e }","preventionTips":["Lowercase all image name/repository components","Interpolate Gradle properties carefully — avoid injecting invalid characters","Always validate registry URLs and include explicit tags","Test the reference with 'docker tag' parsing before adding it to Jib config"],"tags":["gradle","jib","image-reference","validation"],"backgroundTag":"invalid-url-format","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"}