apache/flink · error · FlinkException
Failed to retrieve job list.
Error message
Failed to retrieve job list.
What it means
Thrown from AbstractColumnReader.prepareNewPage when a non-dictionary page uses an encoding other than PLAIN. The vectorized reader's generic path only decodes PLAIN data pages (booleans have their own RLE handling in BooleanColumnReader). Encodings such as DELTA_BINARY_PACKED for non-nested columns hit this branch.
Source
Thrown at flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java:444
}
private <ClusterID> void listJobs(
ClusterClient<ClusterID> clusterClient,
boolean showRunning,
boolean showScheduled,
boolean showAll)
throws FlinkException {
Collection<JobStatusMessage> jobDetails;
try {
CompletableFuture<Collection<JobStatusMessage>> jobDetailsFuture =
clusterClient.listJobs();
logAndSysout("Waiting for response...");
jobDetails = jobDetailsFuture.get();
} catch (Exception e) {
Throwable cause = ExceptionUtils.stripExecutionException(e);
throw new FlinkException("Failed to retrieve job list.", cause);
}
LOG.info("Successfully retrieved list of jobs");
final List<JobStatusMessage> runningJobs = new ArrayList<>();
final List<JobStatusMessage> scheduledJobs = new ArrayList<>();
final List<JobStatusMessage> terminatedJobs = new ArrayList<>();
jobDetails.forEach(
details -> {
if (details.getJobState() == JobStatus.CREATED
|| details.getJobState() == JobStatus.INITIALIZING) {
scheduledJobs.add(details);
} else if (!details.getJobState().isGloballyTerminalState()) {
runningJobs.add(details);
} else {
terminatedJobs.add(details);
}
});View on GitHub (pinned to 2f3c205e92)
Solutions
- Identify the encoding from the message and rewrite the file with PLAIN/PLAIN_DICTIONARY page encodings (disable delta encodings in the writer, e.g. parquet.writer.version or arrow writer options)
- Upgrade Flink so its parquet-mr vectorized reader supports the encoding
- Route such files through a reader that supports the encoding (e.g. convert with Spark, which reads then writes standard encodings)
- For nested columns some encodings are handled by NestedPrimitiveColumnReader — verify the column is actually flat before concluding the file is unreadable
Defensive patterns
Strategy: validation
Validate before calling
// Reject files containing encodings beyond the flat-reader set, up front from footer metadata
for (Encoding enc : columnChunkMetaData.getEncodings()) {
if (enc != Encoding.PLAIN && enc != Encoding.PLAIN_DICTIONARY
&& enc != Encoding.RLE_DICTIONARY && enc != Encoding.RLE) {
return Decision.REJECT_FILE; // boolean RLE is handled by BooleanColumnReader
}
} Try / catch
try {
reader.readToVector(...);
} catch (UnsupportedOperationException e) {
if (String.valueOf(e.getMessage()).startsWith("Unsupported encoding")) {
convertOrReject(file); // e.g. rewrite via Spark with standard encodings
} else throw e;
} Prevention
- Pin writer configurations to PLAIN/dictionary encodings for Flink-consumed data
- When using parquet-cpp/Arrow writers, explicitly disable DELTA_* page encodings
- Test writer/reader combinations in CI with representative schemas
When it happens
Trigger: A flat (non-nested) column written with DELTA_BINARY_PACKED, DELTA_LENGTH_BYTE_ARRAY, DELTA_BYTE_ARRAY, or RLE (for non-boolean) data pages; writers that enable delta encodings by default (e.g. parquet-cpp v2+ options, parquet-format newer defaults).
Common situations: Reading files written by Arrow/parquet-cpp with delta encodings enabled; files written by newer Spark/Impala versions enabling newer encodings; Flink's vendored parquet version lagging the writer's format features.
Related errors
- Could not get job jar and dependencies from JAR file: {}
- Error while waiting for job to be initialized
- Translator {} cannot translate the given pipeline {}.
- Could not stop with a savepoint job "{}".
- could not decode the dictionary for {}
AI-assisted analysis of apache/flink@2f3c205e92 (2026-08-14).
Data as JSON: /api/errors/48b3bfc6120c3ca5.
Report an issue: GitHub.