diff --git a/docs/content/posts/2026-04-22-release-2.1.2.md b/docs/content/posts/2026-04-22-release-2.1.2.md
new file mode 100644
index 0000000000..019947ae04
--- /dev/null
+++ b/docs/content/posts/2026-04-22-release-2.1.2.md
@@ -0,0 +1,142 @@
+---
+title: "Apache Flink 2.1.2 Release Announcement"
+date: "2026-04-22T00:00:00.000Z"
+aliases:
+- /news/2026/04/22/release-2.1.2.html
+authors:
+- snuyanzin:
+ name: "Sergey Nuyanzin"
+
+---
+
+The Apache Flink Community is pleased to announce the second bug fix release of the Flink 2.1 series.
+
+This release includes 45 bug fixes, vulnerability fixes, and minor improvements for Flink 2.1.
+Below you will find a list of all bug fixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see:
+[JIRA](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12356307).
+
+We highly recommend all users upgrade to Flink 2.1.2 or higher.
+
+# Release Artifacts
+
+## Maven Dependencies
+
+```xml
+
+ org.apache.flink
+ flink-java
+ 2.1.2
+
+
+ org.apache.flink
+ flink-streaming-java
+ 2.1.2
+
+
+ org.apache.flink
+ flink-clients
+ 2.1.2
+
+```
+
+## Binaries
+
+You can find the binaries on the updated [Downloads page]({{< relref "downloads" >}}).
+
+## Docker Images
+
+* [library/flink](https://hub.docker.com/_/flink/tags?page=1&name=2.1.2) (official images)
+* [apache/flink](https://hub.docker.com/r/apache/flink/tags?page=1&name=2.1.2) (ASF repository)
+
+## PyPi
+
+* [apache-flink==2.1.2](https://pypi.org/project/apache-flink/2.1.2/)
+
+# Release Notes
+
+
+ Release Notes - Flink - Version 2.1.2
+
+
Bug
+
+
+- [FLINK-35556] - Wrong constant in RocksDBSharedResourcesFactory.SLOT_SHARED_MANAGED
+
+- [FLINK-37266] - Python CLI arguments doesn't work in session mode
+
+- [FLINK-38399] - As long as the join key includes one of the indexes from the source, the join can be converted into a delta join
+
+- [FLINK-38486] - Harden shutdown of DefaultExpressionEvaluator
+
+- [FLINK-38567] - ForSt state backend error with GROUP BY and async state execution
+
+- [FLINK-38574] - Avoid reusing re-uploaded sst files when checkpoint notification is delayed
+
+- [FLINK-38585] - Pyflink's thread mode may not work when using shipped venv.zip archive as virtual env
+
+- [FLINK-38586] - ClassCastException when using Delta Join with lookup cache
+
+- [FLINK-38624] - Flink 2.1 Job Failure: Type Mismatch Exception in StreamPhysicalOverAggregateRule (TIMESTAMP(3) vs TIMESTAMP(3) ROWTIME)
+
+- [FLINK-38703] - ConcurrentModificationException in FineGrainedResourceManager during reporting metrics
+
+- [FLINK-38704] - Metrics reporter setup does not load Prometheus with correct configs/port
+
+- [FLINK-38750] - Validation of queries with functions erroneously invoked under select fails with StackOverflow
+
+- [FLINK-38797] - PyFlink CsvSchemaBuilder.set_null_value method missing return self
+
+- [FLINK-38815] - The debug log will print the sensitive information of data security cookie certification in task manager and jobmanager
+
+- [FLINK-38916] - MultiJoin produces incorrect results for OR join conditions when parallelism is greater than 1
+
+- [FLINK-38938] - Restore of SQL job with CURRENT_TIMESTAMP fails with CodeGenException
+
+- [FLINK-38951] - Upgrade pemja to 0.5.6
+
+- [FLINK-38986] - SSL connection failures in BlobClientSslTest / NettyClientServerSslTest with latest JDK versions
+
+- [FLINK-39015] - Fix MultiJoin RowData behaviour for HeapStateBackend
+
+- [FLINK-39017] - Flink WebUI Job graph node click interaction fails in Chrome 144+ (PointerEvents suppression)
+
+- [FLINK-39052] - ModuleNotFoundError: No module named 'pkg_resources'
+
+- [FLINK-39130] - Allow native types to be used for MetricConfig
+
+- [FLINK-39242] - Method getDataType does not exist error when getting columns from ResolvedSchema
+
+- [FLINK-39355] - Table program cannot be compiled for JSON_OBJECT
+
+- [FLINK-39360] - LIKE clause doesn't support some patterns
+
+- [FLINK-39371] - CurrentDatabase fails for some patterns
+
+- [FLINK-39394] - Job overview metrics (business/backpressure/data skew) are showing N/A when some nodes are finished
+
+- [FLINK-39395] - Add spotless upToDateChecking
+
+- [FLINK-39424] - Setting LIKE does not support default escape characters.
+
+
+
+ Improvement
+
+
+- [FLINK-37881] - Drop gosu in favour of Dockerfile's USER
+
+- [FLINK-38417] - Ensure attribute ordering when managing join attributes in JoinKeyExtractor
+
+- [FLINK-38445] - Create test plans to validate upsert keys
+
+- [FLINK-38914] - Redirect users to deeplink when visiting an outdated or master docs page (instead of stable)
+
+- [FLINK-38924] - Redirect users to documentation home page when encountering a 404
+
+- [FLINK-38925] - Update Matomo URL to the right domain
+
+- [FLINK-38955] - Add canonical tag to generated Javadoc and PyDocs
+
+- [FLINK-39139] - Update lz4-java to 1.10.3
+
+
diff --git a/docs/data/flink.yml b/docs/data/flink.yml
index ad360bd6fc..2b0d4daf7e 100644
--- a/docs/data/flink.yml
+++ b/docs/data/flink.yml
@@ -25,13 +25,13 @@
source_release_sha512_url: "https://downloads.apache.org/flink/flink-2.2.0/flink-2.2.0-src.tgz.sha512"
2.1:
- name: "Apache Flink 2.1.1"
- binary_release_url: "https://www.apache.org/dyn/closer.lua/flink/flink-2.1.1/flink-2.1.1-bin-scala_2.12.tgz"
- binary_release_asc_url: "https://downloads.apache.org/flink/flink-2.1.1/flink-2.1.1-bin-scala_2.12.tgz.asc"
- binary_release_sha512_url: "https://downloads.apache.org/flink/flink-2.1.1/flink-2.1.1-bin-scala_2.12.tgz.sha512"
- source_release_url: "https://www.apache.org/dyn/closer.lua/flink/flink-2.1.1/flink-2.1.1-src.tgz"
- source_release_asc_url: "https://downloads.apache.org/flink/flink-2.1.1/flink-2.1.1-src.tgz.asc"
- source_release_sha512_url: "https://downloads.apache.org/flink/flink-2.1.1/flink-2.1.1-src.tgz.sha512"
+ name: "Apache Flink 2.1.2"
+ binary_release_url: "https://www.apache.org/dyn/closer.lua/flink/flink-2.1.2/flink-2.1.2-bin-scala_2.12.tgz"
+ binary_release_asc_url: "https://downloads.apache.org/flink/flink-2.1.2/flink-2.1.2-bin-scala_2.12.tgz.asc"
+ binary_release_sha512_url: "https://downloads.apache.org/flink/flink-2.1.2/flink-2.1.2-bin-scala_2.12.tgz.sha512"
+ source_release_url: "https://www.apache.org/dyn/closer.lua/flink/flink-2.1.2/flink-2.1.2-src.tgz"
+ source_release_asc_url: "https://downloads.apache.org/flink/flink-2.1.2/flink-2.1.2-src.tgz.asc"
+ source_release_sha512_url: "https://downloads.apache.org/flink/flink-2.1.2/flink-2.1.2-src.tgz.sha512"
2.0:
name: "Apache Flink 2.0.1"
diff --git a/docs/data/release_archive.yml b/docs/data/release_archive.yml
index c8b8ed9dfc..bc7392760d 100644
--- a/docs/data/release_archive.yml
+++ b/docs/data/release_archive.yml
@@ -1,5 +1,8 @@
release_archive:
flink:
+ - version_short: "2.1"
+ version_long: 2.1.2
+ release_date: 2026-04-22
-
version_short: "2.2"
version_long: 2.2.0