GoogleContainerTools/jib · error · GradleException

container.creationTime should be an ISO 8601 date-time (see

Error message

container.creationTime should be an ISO 8601 date-time (see DateTimeFormatter.ISO_DATE_TIME) or a special keyword ("EPOCH", "USE_CURRENT_TIMESTAMP"): ${invalidCreationTime}

What it means

Thrown when container.creationTime is not a valid ISO 8601 date-time nor one of the special keywords 'EPOCH' or 'USE_CURRENT_TIMESTAMP'. This controls the creation timestamp written into the container image config.

Source

Thrown at jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/BuildDockerTask.java:162

          "from.platforms contains a platform configuration that is missing required values or has invalid values: "
              + ex.getMessage()
              + ": "
              + ex.getInvalidPlatform(),
          ex);

    } catch (InvalidContainerVolumeException ex) {
      throw new GradleException(
          "container.volumes is not an absolute Unix-style path: " + ex.getInvalidVolume(), ex);

    } catch (InvalidFilesModificationTimeException ex) {
      throw new GradleException(
          "container.filesModificationTime should be an ISO 8601 date-time (see "
              + "DateTimeFormatter.ISO_DATE_TIME) or special keyword \"EPOCH_PLUS_SECOND\": "
              + ex.getInvalidFilesModificationTime(),
          ex);

    } catch (InvalidCreationTimeException ex) {
      throw new GradleException(
          "container.creationTime should be an ISO 8601 date-time (see "
              + "DateTimeFormatter.ISO_DATE_TIME) or a special keyword (\"EPOCH\", "
              + "\"USE_CURRENT_TIMESTAMP\"): "
              + ex.getInvalidCreationTime(),
          ex);

    } catch (JibPluginExtensionException ex) {
      String extensionName = ex.getExtensionClass().getName();
      throw new GradleException(
          "error running extension '" + extensionName + "': " + ex.getMessage(), ex);

    } catch (IncompatibleBaseImageJavaVersionException ex) {
      throw new GradleException(
          HelpfulSuggestions.forIncompatibleBaseImageJavaVersionForGradle(
              ex.getBaseImageMajorJavaVersion(), ex.getProjectMajorJavaVersion()),
          ex);

    } catch (InvalidImageReferenceException ex) {

View on GitHub (pinned to fb949e2676)

Solutions

  1. Use an ISO 8601 date-time, e.g. creationTime = "2024-01-15T10:00:00Z"
  2. Or use exactly 'EPOCH' or 'USE_CURRENT_TIMESTAMP'
  3. Check keyword spelling/case; values are case-sensitive

Example fix

// before
jib { container { creationTime = '2024-01-15' } }
// after
jib { container { creationTime = 'USE_CURRENT_TIMESTAMP' } }
Defensive patterns

Strategy: validation

Validate before calling

def t = jib.container.creationTime
if (t != null && !(t in ['EPOCH','USE_CURRENT_TIMESTAMP']) && !isValidIsoDateTime(t)) {
  throw new GradleException("creationTime must be ISO 8601, EPOCH, or USE_CURRENT_TIMESTAMP: $t")
}

Try / catch

try { jibBuild.run() } catch (GradleException e) { if (e.message.contains('creationTime')) { logger.error(e.message) }; throw e }

Prevention

When it happens

Trigger: Setting creationTime to an arbitrary string like 'now', a unix epoch number, an ISO date only ('2024-01-15' without time), or a keyword not in the allowed set.

Common situations: Attempting reproducible builds with wrong keyword spelling ('epoch' lowercase fails), setting the value to a plain date, or copying examples meant for filesModificationTime.

Related errors


AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06). Data as JSON: /api/errors/f8369a743d0be715. Report an issue: GitHub.