diff --git a/python/scripts/vendor.py b/python/scripts/vendor.py
index 1038b14ae0c8..da463fbde557 100755
--- a/python/scripts/vendor.py
+++ b/python/scripts/vendor.py
@@ -41,8 +41,8 @@ def main() -> int:
     parser.parse_args()
 
     packages = {
-        "meson==1.2.3":
-        "4533a43c34548edd1f63a276a42690fce15bde9409bcf20c4b8fa3d7e4d7cac1",
+        "meson==1.4.0":
+        "476a458d51fcfa322a6bdc64da5138997c542d08e6b2e49b9fa68c46fd7c4475",
 
         "tomli==2.0.1":
         "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
diff --git a/python/wheels/meson-1.2.3-py3-none-any.whl b/python/wheels/meson-1.2.3-py3-none-any.whl
deleted file mode 100644
index a8b84e5f114ad3fbec8ae56008426a90bccfc168..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/python/wheels/meson-1.4.0-py3-none-any.whl b/python/wheels/meson-1.4.0-py3-none-any.whl
new file mode 100644
index 0000000000000000000000000000000000000000..ca9adc3f024d75ae0c25d050070f1c42c5311156
GIT binary patch
diff --git a/pythondeps.toml b/pythondeps.toml
index 0e8841599935..4269decf0e3e 100644
--- a/pythondeps.toml
+++ b/pythondeps.toml
@@ -19,7 +19,7 @@
 
 [meson]
 # The install key should match the version in python/wheels/
-meson = { accepted = ">=0.63.0", installed = "1.2.3", canary = "meson" }
+meson = { accepted = ">=0.63.0", installed = "1.4.0", canary = "meson" }
 
 [docs]
 sphinx = { accepted = ">=1.6", installed = "5.3.0", canary = "sphinx-build" }
