apache/flink · critical · CliArgsException
Missing JobID. Specify a JobID to cancel a job.
Error message
Missing JobID. Specify a JobID to cancel a job.
What it means
Thrown from BooleanColumnReader.readBoolean when reading the next byte of a bit-packed boolean page fails — the underlying dataInputStream is exhausted while more boolean values are still expected per page metadata. It wraps an IOException from the stream read.
Source
Thrown at flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java:685
.toMillis(),
TimeUnit.MILLISECONDS);
} catch (Exception e) {
throw new FlinkException("Could not cancel job " + jobId + '.', e);
}
logAndSysout(
"Cancelled job "
+ jobId
+ ". Savepoint stored in "
+ savepointPath
+ '.');
});
} else {
final JobID jobId;
if (cleanedArgs.length > 0) {
jobId = parseJobId(cleanedArgs[0]);
} else {
throw new CliArgsException("Missing JobID. Specify a JobID to cancel a job.");
}
logAndSysout("Cancelling job " + jobId + '.');
runClusterAction(
activeCommandLine,
commandLine,
(clusterClient, effectiveConfiguration) -> {
try {
clusterClient
.cancel(jobId)
.get(
getClientTimeout(effectiveConfiguration).toMillis(),
TimeUnit.MILLISECONDS);
} catch (Exception e) {
throw new FlinkException("Could not cancel job " + jobId + '.', e);
}
});View on GitHub (pinned to 2f3c205e92)
Solutions
- Verify file integrity (size, CRC) and re-read a clean copy
- Check whether the boolean column reads fine in `parquet-tools`/Spark — isolate Flink-vs-file
- If the file is fine but Flink fails, capture a minimal reproducer and report to FLINK JIRA (parquet component)
- As a stopgap, rewrite the file with a standard writer
Defensive patterns
Strategy: try-catch
Try / catch
try {
reader.readToVector(n, vector);
} catch (ParquetDecodingException e) {
if ("Failed to read a byte".equals(e.getMessage())) {
// boolean page truncated — quarantine and skip file
} else throw e;
} Prevention
- Validate files end-to-end with parquet-tools before ingesting boolean-heavy datasets
- Ensure writers flush row groups completely before file finalization
- Surface file path + row group ordinal in surrounding error context for triage
When it happens
Trigger: A BOOLEAN column's PLAIN page contains fewer bytes than pageValueCount/8 rounded up; definition-level counts disagree with actual data bytes; truncated or corrupted boolean pages.
Common situations: Corrupt boolean columns in files from object stores; files from writers with boolean page-sizing bugs; partial writes of the last row group.
Related errors
- Error while waiting for job to be initialized
- Could not build the program from JAR file: {}
- Could not cancel job {}.
- Failed to dispose the savepoint '{}'.
- Failed to read from input stream
AI-assisted analysis of apache/flink@2f3c205e92 (2026-08-14).
Data as JSON: /api/errors/36bea291dfa0a44e.
Report an issue: GitHub.