Apache Flink 1.15.4 Release Announcement

March 15, 2023 - Danny Cranmer

The Apache Flink Community is pleased to announce the fourth bug fix release of the Flink 1.15 series.

This release includes 53 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15. 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.15.4.

Release Artifacts #

Maven Dependencies #


Binaries #

You can find the binaries on the updated Downloads page.

Docker Images #

PyPi #

Release Notes #


  • [FLINK-27341] - TaskManager running together with JobManager are bind to
  • [FLINK-27800] - addInEdge check state error
  • [FLINK-27944] - IO metrics collision happens if a task has union inputs
  • [FLINK-28526] - Fail to lateral join with UDTF from Table with timstamp column
  • [FLINK-28695] - Fail to send partition request to restarted taskmanager
  • [FLINK-28742] - Table.to_pandas fails with lit("xxx")
  • [FLINK-28863] - Snapshot result of RocksDB native savepoint should have empty shared-state
  • [FLINK-29231] - PyFlink UDAF produces different results in the same sliding window
  • [FLINK-29234] - Dead lock in DefaultLeaderElectionService
  • [FLINK-30133] - HadoopModuleFactory creates error if the security module cannot be loaded
  • [FLINK-30168] - PyFlink Deserialization Error with Object Array
  • [FLINK-30304] - Possible Deadlock in Kinesis/Firehose/DynamoDB Connector
  • [FLINK-30308] - ClassCastException: class java.io.ObjectStreamClass$Caches$1 cannot be cast to class java.util.Map is showing in the logging when the job shutdown
  • [FLINK-30366] - Python Group Agg failed in cleaning the idle state
  • [FLINK-30461] - Some rocksdb sst files will remain forever
  • [FLINK-30637] - In linux-aarch64 environment, using “is” judgment to match the window type of overwindow have returned incorrect matching results
  • [FLINK-30679] - Can not load the data of hive dim table when project-push-down is introduced
  • [FLINK-30803] - PyFlink mishandles script dependencies
  • [FLINK-30864] - Optional pattern at the start of a group pattern not working
  • [FLINK-30885] - Optional group pattern starts with non-optional looping pattern get wrong result on followed-by
  • [FLINK-31041] - Build up of pending global failures causes JM instability
  • [FLINK-31043] - KeyError exception is thrown in CachedMapState
  • [FLINK-31183] - Flink Kinesis EFO Consumer can fail to stop gracefully
  • [FLINK-31272] - Duplicate operators appear in the StreamGraph for Python DataStream API jobs
  • [FLINK-31283] - Correct the description of building from source with scala version
  • [FLINK-31286] - Python processes are still alive when shutting down a session cluster directly without stopping the jobs


  • [FLINK-27327] - Add description about changing max parallelism explicitly leads to state incompatibility
  • [FLINK-29155] - Improve default config of grpcServer in Process Mode
  • [FLINK-29639] - Add ResourceId in TransportException for debugging
  • [FLINK-29729] - Fix credential info configured in flink-conf.yaml is lost during creating ParquetReader
  • [FLINK-29966] - Replace and redesign the Python api documentation base
  • [FLINK-30633] - Update AWS SDKv2 to v2.19.14
  • [FLINK-30724] - Update doc of kafka per-partition watermark to FLIP-27 source
  • [FLINK-30962] - Improve error messaging when launching py4j gateway server
  • [FLINK-31031] - Disable the output buffer of Python process to make it more convenient for interactive users


  • [FLINK-30462] - DefaultMultipleComponentLeaderElectionService saves wrong leader session ID