Code review comment: If we query the rest before the job is running, maybe the `checkpointCoordinatorConfiguration.getStateBackendName()` will return null (please see the above comments), so transfer to `TEMPORARY_UNKNOWN` here.

Code before review:
private static CheckpointConfigInfo createCheckpointConfigInfo(AccessExecutionGraph executionGraph) throws RestHandlerException {
final CheckpointCoordinatorConfiguration checkpointCoordinatorConfiguration = executionGraph.getCheckpointCoordinatorConfiguration();
if (checkpointCoordinatorConfiguration == null) {
throw new RestHandlerException(
"Checkpointing is not enabled for this job (" + executionGraph.getJobID() + ").",
HttpResponseStatus.NOT_FOUND);
} else {
CheckpointRetentionPolicy retentionPolicy = checkpointCoordinatorConfiguration.getCheckpointRetentionPolicy();
CheckpointConfigInfo.ExternalizedCheckpointInfo externalizedCheckpointInfo = new CheckpointConfigInfo.ExternalizedCheckpointInfo(
retentionPolicy != CheckpointRetentionPolicy.NEVER_RETAIN_AFTER_TERMINATION,
retentionPolicy != CheckpointRetentionPolicy.RETAIN_ON_CANCELLATION);
String stateName = checkpointCoordinatorConfiguration.getStateBackendName() == null ? "TEMPORARY_UNKNOWN" : checkpointCoordinatorConfiguration.getStateBackendName();
return new CheckpointConfigInfo(
checkpointCoordinatorConfiguration.isExactlyOnce() ? CheckpointConfigInfo.ProcessingMode.EXACTLY_ONCE : CheckpointConfigInfo.ProcessingMode.AT_LEAST_ONCE,
checkpointCoordinatorConfiguration.getCheckpointInterval(),
checkpointCoordinatorConfiguration.getCheckpointTimeout(),
checkpointCoordinatorConfiguration.getMinPauseBetweenCheckpoints(),
checkpointCoordinatorConfiguration.getMaxConcurrentCheckpoints(),
externalizedCheckpointInfo,
stateName);
}
}

Line under review: String stateName = checkpointCoordinatorConfiguration.getStateBackendName() == null ? "TEMPORARY_UNKNOWN" : checkpointCoordinatorConfiguration.getStateBackendName();

Code after addressing the review:
private static CheckpointConfigInfo createCheckpointConfigInfo(AccessExecutionGraph executionGraph) throws RestHandlerException {
final CheckpointCoordinatorConfiguration checkpointCoordinatorConfiguration = executionGraph.getCheckpointCoordinatorConfiguration();
if (checkpointCoordinatorConfiguration == null) {
throw new RestHandlerException(
"Checkpointing is not enabled for this job (" + executionGraph.getJobID() + ").",
HttpResponseStatus.NOT_FOUND);
} else {
CheckpointRetentionPolicy retentionPolicy = checkpointCoordinatorConfiguration.getCheckpointRetentionPolicy();
CheckpointConfigInfo.ExternalizedCheckpointInfo externalizedCheckpointInfo = new CheckpointConfigInfo.ExternalizedCheckpointInfo(
retentionPolicy != CheckpointRetentionPolicy.NEVER_RETAIN_AFTER_TERMINATION,
retentionPolicy != CheckpointRetentionPolicy.RETAIN_ON_CANCELLATION);
String stateBackendName = executionGraph.getStateBackendName().orElse(null);
return new CheckpointConfigInfo(
checkpointCoordinatorConfiguration.isExactlyOnce() ? CheckpointConfigInfo.ProcessingMode.EXACTLY_ONCE : CheckpointConfigInfo.ProcessingMode.AT_LEAST_ONCE,
checkpointCoordinatorConfiguration.getCheckpointInterval(),
checkpointCoordinatorConfiguration.getCheckpointTimeout(),
checkpointCoordinatorConfiguration.getMinPauseBetweenCheckpoints(),
checkpointCoordinatorConfiguration.getMaxConcurrentCheckpoints(),
externalizedCheckpointInfo,
stateBackendName);
}
}