blob: 8fff29afc983a6fd7bbbb453f20779fe74bc87da [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" dir=ZgotmplZ>
<head>
<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
<link rel="canonical" href="https://flink.apache.org/2025/07/10/apache-flink-1.20.2-release-announcement/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="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.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Apache Flink 1.20.2 Release Announcement" />
<meta property="og:description" content="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." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/2025/07/10/apache-flink-1.20.2-release-announcement/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2025-07-10T00:00:00+00:00" />
<meta property="article:modified_time" content="2025-07-10T00:00:00+00:00" />
<title>Apache Flink 1.20.2 Release Announcement | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/en.search.min.2dcb18b1dc51a58cf008db2e374638721a2e778c982365ff222f54319caecd83.js" integrity="sha256-LcsYsdxRpYzwCNsuN0Y4choud4yYI2X/Ii9UMZyuzYM="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->
<meta name="generator" content="Hugo 0.124.1">
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
</head>
<body dir=ZgotmplZ>
<header>
<nav class="navbar navbar-expand-xl">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<img src="/img/logo/png/100/flink_squirrel_100_color.png" alt="Apache Flink" height="47" width="47" class="d-inline-block align-text-middle">
<span>Apache Flink</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-bars navbar-toggler-icon"></i>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="/what-is-flink/flink-architecture/">Architecture</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/flink-applications/">Applications</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/flink-operations/">Operations</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/use-cases/">Use Cases</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/powered-by/">Powered By</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/roadmap/">Roadmap</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/community/">Community & Project Info</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/security/">Security</a>
</li>
<li>
<a class="dropdown-item" href="/what-is-flink/special-thanks/">Special Thanks</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Getting Started</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/">With Flink<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/">With Flink Kubernetes Operator<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/get-started/introduction/">With Flink CDC<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/docs/try-flink-ml/quick-start/">With Flink ML<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/getting-started/project-setup.html">With Flink Stateful Functions<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/learn-flink/overview/">Training Course<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/">Flink 2.1 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-lts/">Flink 1.20 (LTS)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-master/">Flink Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">Kubernetes Operator 1.13 (latest)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main">Kubernetes Operator Main (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable">CDC 3.5 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-master">CDC Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">ML 2.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-master">ML Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">Stateful Functions 3.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-master">Stateful Functions Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">How to Contribute</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="/how-to-contribute/overview/">Overview</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/contribute-code/">Contribute Code</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/reviewing-prs/">Review Pull Requests</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/code-style-and-quality-preamble/">Code Style and Quality Guide</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/contribute-documentation/">Contribute Documentation</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/documentation-style-guide/">Documentation Style Guide</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/improve-website/">Contribute to the Website</a>
</li>
<li>
<a class="dropdown-item" href="/how-to-contribute/getting-help/">Getting Help</a>
</li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/posts/">Flink Blog</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/downloads/">Downloads</a>
</li>
</ul>
<div class="book-search">
<div class="book-search-spinner hidden">
<i class="fa fa-refresh fa-spin"></i>
</div>
<form class="search-bar d-flex" onsubmit="return false;"su>
<input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/">
<i class="fa fa-search search"></i>
<i class="fa fa-circle-o-notch fa-spin spinner"></i>
</form>
<div class="book-search-spinner hidden"></div>
<ul id="book-search-results"></ul>
</div>
</div>
</div>
</nav>
<div class="navbar-clearfix"></div>
</header>
<main class="flex">
<section class="container book-page">
<article class="markdown">
<h1>
<a href="/2025/07/10/apache-flink-1.20.2-release-announcement/">Apache Flink 1.20.2 Release Announcement</a>
</h1>
July 10, 2025 -
Ferenc Csaky
<p><p>The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.20 series.</p>
<p>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:
<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&amp;version=12355442">JIRA</a>.</p>
<p>We highly recommend all users upgrade to Flink 1.20.2 or higher.</p>
<div class="alert alert-warning" role="alert">
<b>Note:</b> This release contains an improvement regarding how the Adaptive Scheduler works by default on Kubernetes deployments.
<p>Beforehand, in case of a downscaling, the Adaptive Scheduler was not striving to minimize the active TaskManager number, and free up resources even if it had been possible.
This logic is now changed and by default the Adaptive Scheduler will try to maximize TaskManager utilization during a downscale event to be able to minimize the necessary TaskManager number.</p>
<p>Although this behavioral change pushes the boundaries of a patch release, the community agreed that the applied default is expected in the vast majority of use cases.
To keep the previous strategy, make sure you set the <code>jobmanager.adaptive-scheduler.prefer-minimal-taskmanagers</code> configuration option to <code>false</code>.
For more details, please see <a href='https://issues.apache.org/jira/browse/FLINK-33977'>FLINK-33977</a>.</p>
</div>
<h1 id="release-artifacts">
Release Artifacts
<a class="anchor" href="#release-artifacts">#</a>
</h1>
<h2 id="maven-dependencies">
Maven Dependencies
<a class="anchor" href="#maven-dependencies">#</a>
</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt">&lt;dependency&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;artifactId&gt;</span>flink-java<span class="nt">&lt;/artifactId&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;version&gt;</span>1.20.2<span class="nt">&lt;/version&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nt">&lt;/dependency&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nt">&lt;dependency&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;artifactId&gt;</span>flink-streaming-java<span class="nt">&lt;/artifactId&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;version&gt;</span>1.20.2<span class="nt">&lt;/version&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nt">&lt;/dependency&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nt">&lt;dependency&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;artifactId&gt;</span>flink-clients<span class="nt">&lt;/artifactId&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="nt">&lt;version&gt;</span>1.20.2<span class="nt">&lt;/version&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nt">&lt;/dependency&gt;</span>
</span></span></code></pre></div><h2 id="binaries">
Binaries
<a class="anchor" href="#binaries">#</a>
</h2>
<p>You can find the binaries on the updated <a href="/downloads/">Downloads page</a>.</p>
<h2 id="docker-images">
Docker Images
<a class="anchor" href="#docker-images">#</a>
</h2>
<ul>
<li><a href="https://hub.docker.com/_/flink/tags?page=1&amp;name=1.20.2">library/flink</a> (official images)</li>
<li><a href="https://hub.docker.com/r/apache/flink/tags?page=1&amp;name=1.20.2">apache/flink</a> (ASF repository)</li>
</ul>
<h2 id="pypi">
PyPi
<a class="anchor" href="#pypi">#</a>
</h2>
<ul>
<li><a href="https://pypi.org/project/apache-flink/1.20.2/">apache-flink==1.20.2</a></li>
</ul>
<h1 id="release-notes">
Release Notes
<a class="anchor" href="#release-notes">#</a>
</h1>
<pre><code> Release Notes - Flink - Version 1.20.2
</code></pre>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-30687'>FLINK-30687</a>] - FILTER not effect in count(*)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-34227'>FLINK-34227</a>] - Job doesn&#39;t disconnect from ResourceManager
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-35117'>FLINK-35117</a>] - AsyncScalarFunction has a dependency issue.
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-35687'>FLINK-35687</a>] - JSON_QUERY should return a well formatted nested objects/arrays for ARRAY&lt;STRING&gt;
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-36549'>FLINK-36549</a>] - Using the ignore-parse-errors parameter in Debezium/Canal/Maxwell/Ogg JSON results in unexpected data loss.
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37205'>FLINK-37205</a>] - Correct the state cache behavior during bump beam version
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37460'>FLINK-37460</a>] - Using State Processor API and Kafka Sink with Exactly once delivery leads to org.apache.kafka.common.errors.InvalidPidMappingException
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37480'>FLINK-37480</a>] - Jpicmp gives false positive
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37505'>FLINK-37505</a>] - Pyflink is not able to handle the new YAML based configs
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37545'>FLINK-37545</a>] - StackOverflowError when using MetricGroup in custom WatermarkStrategy
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37557'>FLINK-37557</a>] - ResolvedSchema#getPrimaryKeyIndexes does not filter for physical columns
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37605'>FLINK-37605</a>] - SinkWriter may incorrectly infer end of input during rescale
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37609'>FLINK-37609</a>] - Bump parquet libs to 1.15.1
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37670'>FLINK-37670</a>] - Watermark alignment can deadlock job if there are no more splits to be assigned
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37760'>FLINK-37760</a>] - Bump parquet version to 1.15.2
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37803'>FLINK-37803</a>] - LocalTime without seconds is incorrectly serialized to SQL as a value literal
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37820'>FLINK-37820</a>] - AsyncScalarFunction UDFs cannot be loaded via CompiledPlan
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37833'>FLINK-37833</a>] - Code generated for binary key in BatchExecExchange causes incorrect shuffle
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37870'>FLINK-37870</a>] - Unaligned checkpoint is disabled for all connections unexpectedly
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-33977'>FLINK-33977</a>] - Adaptive scheduler may not minimize the number of TMs during downscaling
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37109'>FLINK-37109</a>] - Improve state processor API performance when reading keyed rocksdb state by allowing duplicates
</li>
</ul>
<h2> Technical Debt
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37241'>FLINK-37241</a>] - Remove Mockito dependency from StateBackendTestBase
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37360'>FLINK-37360</a>] - Update japicmp configuration post 1.20.1
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37804'>FLINK-37804</a>] - Python failed to build wheels on macos
</li>
<li>[<a href='https://issues.apache.org/jira/browse/FLINK-37810'>FLINK-37810</a>] - update log4j to 2.24.3 to fix critical vulnerabilities
</li>
</ul>
</p>
</article>
<div class="edit-this-page">
<p>
<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
</p>
<p>
<a href="//github.com/apache/flink-web/edit/asf-site/docs/content/posts/2025-07-10-release-1.20.2.md">
Edit This Page<i class="fa fa-edit fa-fw"></i>
</a>
</p>
</div>
</section>
<aside class="book-toc">
<nav id="TableOfContents"><h3>On This Page <a href="javascript:void(0)" class="toc" onclick="collapseToc()"><i class="fa fa-times" aria-hidden="true"></i></a></h3>
<ul>
<li><a href="#release-artifacts">Release Artifacts</a>
<ul>
<li><a href="#maven-dependencies">Maven Dependencies</a></li>
<li><a href="#binaries">Binaries</a></li>
<li><a href="#docker-images">Docker Images</a></li>
<li><a href="#pypi">PyPi</a></li>
</ul>
</li>
<li><a href="#release-notes">Release Notes</a></li>
</ul>
</nav>
</aside>
<aside class="expand-toc hidden">
<a class="toc" onclick="expandToc()" href="javascript:void(0)">
<i class="fa fa-bars" aria-hidden="true"></i>
</a>
</aside>
</main>
<footer>
<div class="separator"></div>
<div class="panels">
<div class="wrapper">
<div class="panel">
<ul>
<li>
<a href="https://flink-packages.org/">flink-packages.org</a>
</li>
<li>
<a href="https://www.apache.org/">Apache Software Foundation</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
<li>
<a href="/zh/">
<i class="fa fa-globe" aria-hidden="true"></i>&nbsp;中文版
</a>
</li>
</ul>
</div>
<div class="panel">
<ul>
<li>
<a href="/what-is-flink/security">Security</a-->
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</div>
<div class="panel icons">
<div>
<a href="/posts">
<div class="icon flink-blog-icon"></div>
<span>Flink blog</span>
</a>
</div>
<div>
<a href="https://github.com/apache/flink">
<div class="icon flink-github-icon"></div>
<span>Github</span>
</a>
</div>
<div>
<a href="https://twitter.com/apacheflink">
<div class="icon flink-twitter-icon"></div>
<span>Twitter</span>
</a>
</div>
</div>
</div>
</div>
<hr/>
<div class="container disclaimer">
<p>The contents of this website are © 2024 Apache Software Foundation under the terms of the Apache License v2. Apache Flink, Flink, and the Flink logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>
</footer>
</body>
</html>