diff --git a/CHANGELOG.md b/CHANGELOG.md
index a06384af..e2aaa484 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,11 @@
 
 ## [Unreleased]
 
+## [0.4.1] - 2023-09-14
+
 ### Behavior Changes
+
+* When log recycling is enabled, Raft Engine will now retain 50% more log files to reduce the chance of running out.
 * Reduce the scope of keys reserved for internal use.
 
 ## [0.4.0] - 2023-09-01
diff --git a/Cargo.toml b/Cargo.toml
index 4330fa6b..bf4a35ba 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "raft-engine"
-version = "0.4.0"
+version = "0.4.1"
 authors = ["The TiKV Project Developers"]
 edition = "2018"
 rust-version = "1.66.0"
diff --git a/README.md b/README.md
index 0caff515..bbba26ee 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,7 @@ Put this in your Cargo.toml:
 
 ```rust
 [dependencies]
-raft-engine = "0.4.0"
+raft-engine = "0.4"
 ```
 
 Available Cargo features:
diff --git a/ctl/Cargo.toml b/ctl/Cargo.toml
index 54b7ee87..5bf23c8b 100644
--- a/ctl/Cargo.toml
+++ b/ctl/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "raft-engine-ctl"
-version = "0.4.0"
+version = "0.4.1"
 authors = ["The TiKV Project Developers"]
 edition = "2018"
 rust-version = "1.61.0"
@@ -11,4 +11,4 @@ license = "Apache-2.0"
 [dependencies]
 clap = { version = "3.1", features = ["derive", "cargo"] }
 env_logger = "0.10"
-raft-engine = { path = "..", version = "0.4.0", features = ["scripting", "internals"] }
+raft-engine = { path = "..", version = "0.4.1", features = ["scripting", "internals"] }
diff --git a/stress/Cargo.toml b/stress/Cargo.toml
index 7fa0b830..79d131e2 100644
--- a/stress/Cargo.toml
+++ b/stress/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "stress"
-version = "0.4.0"
+version = "0.4.1"
 authors = ["The TiKV Authors"]
 edition = "2018"