apache/flink · critical · CliArgsException

Missing JobID. Specify a Job ID to manipulate a checkpoint.

Error message

Missing JobID. Specify a Job ID to manipulate a checkpoint.

What it means

Wrapped as ParquetDecodingException from NestedPrimitiveColumnReader.readPageV1 when any stage of DataPageV1 initialization fails: creating repetition/definition level readers, page.getBytes(), or initDataReader for the value section. The formatted message includes the page and column. The cause distinguishes which stage broke.

Source

Thrown at flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java:961

        // evaluate help flag
        if (checkpointOptions.isPrintHelp()) {
            CliFrontendParser.printHelpForCheckpoint(customCommandLines);
            return;
        }

        final CustomCommandLine activeCommandLine = validateAndGetActiveCommandLine(commandLine);

        String[] cleanedArgs = checkpointOptions.getArgs();

        final JobID jobId;

        if (cleanedArgs.length >= 1) {
            String jobIdString = cleanedArgs[0];

            jobId = parseJobId(jobIdString);
        } else {
            throw new CliArgsException(
                    "Missing JobID. " + "Specify a Job ID to manipulate a checkpoint.");
        }
        runClusterAction(
                activeCommandLine,
                commandLine,
                (clusterClient, effectiveConfiguration) ->
                        triggerCheckpoint(
                                clusterClient,
                                jobId,
                                checkpointOptions.getCheckpointType(),
                                getClientTimeout(effectiveConfiguration)));
    }

    /** Sends a CheckpointTriggerMessage to the job manager. */
    private void triggerCheckpoint(
            ClusterClient<?> clusterClient,
            JobID jobId,
            CheckpointType checkpointType,

View on GitHub (pinned to 2f3c205e92)

Solutions

  1. Unwrap the cause to identify the failing stage (levels vs. values vs. dictionary)
  2. Validate the file with parquet-tools; regenerate or re-obtain if malformed
  3. If the cause is an unsupported encoding, rewrite the file with standard encodings or upgrade Flink
  4. Report writer-specific bugs with a reproducer file
Defensive patterns

Strategy: try-catch

Validate before calling

// Pre-validate the v1 page's declared encodings from footer metadata
for (Encoding enc : cc.getEncodings()) {
    if (!isKnownV1Encoding(enc)) rejectFile(path, enc);
}

Try / catch

try {
    nestedReader.readAndNewVector(...);
} catch (ParquetDecodingException e) {
    // 'Could not read page %s in col %s.' — unwrap cause, quarantine on truncation/corruption
    quarantine(path, e);
}

Prevention

When it happens

Trigger: Level encodings in the page header unsupported by parquet-mr's getValuesReader; page bytes truncated before values; value-encoding init failure delegated from initDataReader (dictionary missing, unsupported encoding); corrupted v1 page headers.

Common situations: Malformed files from non-standard writers; corrupt object-store files; encoding/level-encoding combinations Flink's vendored parquet does not support.

Related errors


AI-assisted analysis of apache/flink@2f3c205e92 (2026-08-14). Data as JSON: /api/errors/8f2ac8a50e7ab5c9. Report an issue: GitHub.