Vikas Patil
10/21/2025, 2:37 PM//ApplicationReconciler.java
} else if (requireHaMetadata && flinkService.atLeastOneCheckpoint(deployConfig)) {
// Last state deployment, explicitly set a dummy savepoint path to avoid accidental
// incorrect state restore in case the HA metadata is deleted by the user
deployConfig.set(SavepointConfigOptions.SAVEPOINT_PATH, LAST_STATE_DUMMY_SP_PATH);
status.getJobStatus().setUpgradeSavepointPath(LAST_STATE_DUMMY_SP_PATH);
} else {
deployConfig.removeConfig(SavepointConfigOptions.SAVEPOINT_PATH);
• Flink, given any savepoint/checkpoint pointer, immediately resolves that path and fails fast on the dummy before any HA path is considered:
public static FsCompletedCheckpointStorageLocation resolveCheckpointPointer(String checkpointPointer) throws IOException {
final Path path;
try { path = new Path(checkpointPointer); } catch (Exception e) { /* invalid URI */ }
final FileSystem fs = path.getFileSystem();
final FileStatus status;
try { status = fs.getFileStatus(path); } catch (FileNotFoundException e) {
throw new FileNotFoundException("Cannot find checkpoint or savepoint file/directory '"
+ checkpointPointer + "' on file system '" + fs.getUri().getScheme() + "'.");
}
// ...
}
Why is this the case ? Does anyone have any context on how to solve this ?