diff --git a/packages/overlays/matrix-synapse/patches/0018-configure_workers_and_start.py-unify-python-path-182.patch b/packages/overlays/matrix-synapse/patches/0018-configure_workers_and_start.py-unify-python-path-182.patch
new file mode 100644
index 0000000..077f5d0
--- /dev/null
+++ b/packages/overlays/matrix-synapse/patches/0018-configure_workers_and_start.py-unify-python-path-182.patch
@@ -0,0 +1,73 @@
+From 7563b2a2a316a7b249ef847ddbf5b63064eb1cc2 Mon Sep 17 00:00:00 2001
+From: Andrew Ferrazzutti <andrewf@element.io>
+Date: Wed, 30 Apr 2025 10:22:09 -0400
+Subject: [PATCH 18/74] configure_workers_and_start.py: unify python path
+ (#18291)
+
+Use absolute path for python in script shebang, and invoke child python
+processes with sys.executable. This is consistent with the absolute path
+used to invoke python elsewhere (like in the supervisor config).
+
+### Pull Request Checklist
+
+<!-- Please read
+https://element-hq.github.io/synapse/latest/development/contributing_guide.html
+before submitting your pull request -->
+
+* [x] Pull request is based on the develop branch
+* [x] Pull request includes a [changelog
+file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog).
+The entry should:
+- Be a short description of your change which makes sense to users.
+"Fixed a bug that prevented receiving messages from other servers."
+instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
+ - Use markdown where necessary, mostly for `code blocks`.
+ - End with either a period (.) or an exclamation mark (!).
+ - Start with a capital letter.
+- Feel free to credit yourself, by adding a sentence "Contributed by
+@github_username." or "Contributed by [Your Name]." to the end of the
+entry.
+* [x] [Code
+style](https://element-hq.github.io/synapse/latest/code_style.html) is
+correct
+(run the
+[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))
+
+---------
+
+Co-authored-by: Quentin Gliech <quenting@element.io>
+---
+ changelog.d/18291.docker | 1 +
+ docker/configure_workers_and_start.py | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+ create mode 100644 changelog.d/18291.docker
+
+diff --git a/changelog.d/18291.docker b/changelog.d/18291.docker
+new file mode 100644
+index 0000000000..b94c0e80e3
+--- /dev/null
++++ b/changelog.d/18291.docker
+@@ -0,0 +1 @@
++In configure_workers_and_start.py, use the same absolute path of Python in the interpreter shebang, and invoke child Python processes with `sys.executable`.
+diff --git a/docker/configure_workers_and_start.py b/docker/configure_workers_and_start.py
+index 6d73e8feaa..ff5cff3221 100755
+--- a/docker/configure_workers_and_start.py
++++ b/docker/configure_workers_and_start.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/local/bin/python
+ #
+ # This file is licensed under the Affero General Public License (AGPL) version 3.
+ #
+@@ -604,7 +604,7 @@ def generate_base_homeserver_config() -> None:
+ # start.py already does this for us, so just call that.
+ # note that this script is copied in in the official, monolith dockerfile
+ os.environ["SYNAPSE_HTTP_PORT"] = str(MAIN_PROCESS_HTTP_LISTENER_PORT)
+- subprocess.run(["/usr/local/bin/python", "/start.py", "migrate_config"], check=True)
++ subprocess.run([sys.executable, "/start.py", "migrate_config"], check=True)
+
+
+ def parse_worker_types(
+--
+2.49.0
+
|