{"record":{"id":"4c1973876c59d4dd","repo":"apache/flink","slug":"could-not-build-the-program-from-jar-file","errorCode":null,"errorMessage":"Could not build the program from JAR file: {}","messagePattern":"Could not build the program from JAR file: (.+?)","errorType":"exception","errorClass":"CliArgsException","httpStatus":null,"severity":"critical","filePath":"flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java","lineNumber":272,"sourceCode":"\n        try {\n            File jarFile = jarFilePath != null ? getJarFile(jarFilePath) : null;\n            return PackagedProgram.getJobJarAndDependencies(jarFile, entryPointClass);\n        } catch (FileNotFoundException | ProgramInvocationException e) {\n            throw new CliArgsException(\n                    \"Could not get job jar and dependencies from JAR file: \" + e.getMessage(), e);\n        }\n    }\n\n    private PackagedProgram getPackagedProgram(\n            ProgramOptions programOptions, Configuration effectiveConfiguration)\n            throws ProgramInvocationException, CliArgsException {\n        PackagedProgram program;\n        try {\n            LOG.info(\"Building program from JAR file\");\n            program = buildProgram(programOptions, effectiveConfiguration);\n        } catch (FileNotFoundException e) {\n            throw new CliArgsException(\n                    \"Could not build the program from JAR file: \" + e.getMessage(), e);\n        }\n        return program;\n    }\n\n    private Configuration getEffectiveConfiguration(\n            final CustomCommandLine activeCustomCommandLine, final CommandLine commandLine)\n            throws FlinkException {\n\n        final Configuration effectiveConfiguration = new Configuration(configuration);\n\n        final Configuration commandLineConfiguration =\n                checkNotNull(activeCustomCommandLine).toConfiguration(commandLine);\n\n        effectiveConfiguration.addAll(commandLineConfiguration);\n\n        return effectiveConfiguration;\n    }","sourceCodeStart":254,"sourceCodeEnd":290,"githubUrl":"https://github.com/apache/flink/blob/2f3c205e9266cb30240eb7f4fdab15cad629a70f/flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java#L254-L290","documentation":"Thrown from AbstractColumnReader.prepareNewPage when initializing the RunLengthDecoder over a dictionary-encoded page's dictionary-id stream fails with IOException. The page's RLE/bit-packing hybrid payload for dictionary ids is unreadable — typically truncated bytes or a malformed RLE block. The column and cause are included.","triggerScenarios":"dataInputStream over the page body ends prematurely while the RunLengthDecoder reads dictionary ids; the RLE run header/length is inconsistent with remaining bytes; byte-level corruption of the page payload.","commonSituations":"Corrupt or partially-uploaded files in HDFS/S3; files damaged by bad checksumming network transfer; column chunks whose page sizes in metadata disagree with actual bytes.","solutions":["Check the cause: an EOF means truncated bytes — verify file size against footer metadata and the object store's ETag/content-length","Re-copy the file from the source and retry the read; if reproducible the file itself is bad","Validate with `parquet-tools dump` to see whether the page decodes in a reference implementation","If this reproduces across readers, report the file to the writing system's maintainers — the writer emitted a malformed RLE stream"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    reader.readToVector(n, vector);\n} catch (IOException e) {\n    // 'could not read dictionary in col ...' — root cause marks the byte offset\n    throw new CorruptParquetFileException(file, e);\n}","preventionTips":["Enable server-side checksums (S3 checksums, HDFS crc) so truncated uploads fail before readers see them","Write files atomically (temp name + rename) so partial files are never visible","Log descriptor + page number to attribute corruption to a specific producer run"],"tags":["parquet","rle","io","data-corruption"],"backgroundTag":null,"analyzedSha":"2f3c205e9266cb30240eb7f4fdab15cad629a70f","analyzedAt":"2026-08-14T08:48:24.518Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}