prestodb/presto · error · OrcCorruptionException

Unexpected timezone

Error message

Unexpected timezone

What it means

Write-validation error in validateTimeZone: the timezone recorded in the re-read ORC footer differs from the writer's timezone (DWRF is exempt since it stores none). This flags files whose writer timezone metadata is inconsistent — potential corruption or a writer bug.

Source

Thrown at presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java:226

        return orcEncoding;
    }

    public boolean isDwrf()
    {
        return orcEncoding == DWRF;
    }

    public ZoneId getTimezone()
    {
        return timezone;
    }

    public void validateTimeZone(OrcDataSourceId orcDataSourceId, ZoneId actualTimezone)
            throws OrcCorruptionException
    {
        // DWRF does not store the writer timezone
        if (!isDwrf() && !timezone.equals(actualTimezone)) {
            throw new OrcCorruptionException(orcDataSourceId, "Unexpected timezone");
        }
    }

    public WriteChecksum getChecksum()
    {
        return checksum;
    }

    public void validateFileStatistics(OrcDataSourceId orcDataSourceId, List<ColumnStatistics> actualFileStatistics)
            throws OrcCorruptionException
    {
        validateColumnStatisticsEquivalent(orcDataSourceId, "file", actualFileStatistics, fileStatistics);
    }

    public void validateStripeStatistics(OrcDataSourceId orcDataSourceId, List<StripeInformation> actualStripes, List<StripeStatistics> actualStripeStatistics)
            throws OrcCorruptionException
    {
        requireNonNull(actualStripes, "actualStripes is null");

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Reproduce with orc.writer-validation enabled to confirm a writer bug
  2. Ensure consistent JVM/coordinator timezone settings across the write job
  3. Rewrite the affected data with validation passing
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java:226 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/66095adf02ca39d2. Report an issue: GitHub.