Apache Flink 1.20.2 Release Announcement

July 10, 2025 - Ferenc Csaky

The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.20 series.

This release includes 25 bug fixes, vulnerability fixes, and minor improvements for Flink 1.20. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.

We highly recommend all users upgrade to Flink 1.20.2 or higher.

Release Artifacts #

Maven Dependencies #

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-java</artifactId>
  <version>1.20.2</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-streaming-java</artifactId>
  <version>1.20.2</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients</artifactId>
  <version>1.20.2</version>
</dependency>

Binaries #

You can find the binaries on the updated Downloads page.

Docker Images #

PyPi #

Release Notes #

    Release Notes - Flink - Version 1.20.2

Bug

  • [FLINK-30687] - FILTER not effect in count(*)
  • [FLINK-34227] - Job doesn't disconnect from ResourceManager
  • [FLINK-35117] - AsyncScalarFunction has a dependency issue.
  • [FLINK-35687] - JSON_QUERY should return a well formatted nested objects/arrays for ARRAY<STRING>
  • [FLINK-36549] - Using the ignore-parse-errors parameter in Debezium/Canal/Maxwell/Ogg JSON results in unexpected data loss.
  • [FLINK-37205] - Correct the state cache behavior during bump beam version
  • [FLINK-37460] - Using State Processor API and Kafka Sink with Exactly once delivery leads to org.apache.kafka.common.errors.InvalidPidMappingException
  • [FLINK-37480] - Jpicmp gives false positive
  • [FLINK-37505] - Pyflink is not able to handle the new YAML based configs
  • [FLINK-37545] - StackOverflowError when using MetricGroup in custom WatermarkStrategy
  • [FLINK-37557] - ResolvedSchema#getPrimaryKeyIndexes does not filter for physical columns
  • [FLINK-37605] - SinkWriter may incorrectly infer end of input during rescale
  • [FLINK-37609] - Bump parquet libs to 1.15.1
  • [FLINK-37670] - Watermark alignment can deadlock job if there are no more splits to be assigned
  • [FLINK-37760] - Bump parquet version to 1.15.2
  • [FLINK-37803] - LocalTime without seconds is incorrectly serialized to SQL as a value literal
  • [FLINK-37820] - AsyncScalarFunction UDFs cannot be loaded via CompiledPlan
  • [FLINK-37833] - Code generated for binary key in BatchExecExchange causes incorrect shuffle
  • [FLINK-37870] - Unaligned checkpoint is disabled for all connections unexpectedly

Improvement

  • [FLINK-33977] - Adaptive scheduler may not minimize the number of TMs during downscaling
  • [FLINK-37109] - Improve state processor API performance when reading keyed rocksdb state by allowing duplicates

Technical Debt

  • [FLINK-37241] - Remove Mockito dependency from StateBackendTestBase
  • [FLINK-37360] - Update japicmp configuration post 1.20.1
  • [FLINK-37804] - Python failed to build wheels on macos
  • [FLINK-37810] - update log4j to 2.24.3 to fix critical vulnerabilities