Matrix WhatsApp Bridge
-
@jdaviescoates I think we have to figure a way to get such niche app packages published. At least, we are on board internally to do something to allow external publishers, so we will work on something soon.
@girish said in Matrix WhatsApp Bridge:
I think we have to figure a way to get such niche app packages published.
I would argue that this is equal or even less of a niche app than the Valheim Gameserver for example.
-
@andreasdueren I am with you on that

Maybe niche is not the right term but I simply meant to say is that "extensions" to apps by third parties is quite a burden for app packages. It's best to figure out a way by which other people can host it easily especially when people are making their efforts public.
-
@andreasdueren I am with you on that

Maybe niche is not the right term but I simply meant to say is that "extensions" to apps by third parties is quite a burden for app packages. It's best to figure out a way by which other people can host it easily especially when people are making their efforts public.
@girish said in Matrix WhatsApp Bridge:
"extensions" to apps by third parties is quite a burden for app packages.
I understand that it needs to be feasible to maintain these kind of things. Cloudron needs to be profitable after all. I hope we can find some solution for these things, especially if they're simple go binaries like this one.
-
Updated bridge to v0.2510.0
https://git.due.ren/andreas/mautrix-whatsapp-cloudron/releases/tag/v2.0.0
-
I'm looking to install the Zulip bridge in order to connect our Matrix server with a Zulip chat that collaborators use. Supporting bridges somehow seems important, as bridging is really central to Matrix's value proposition. (Of course, it is absurd that bridging requires third-party software installation rather than some kind of simple, integrated plugin architecture.)
Is there a way to set this up on the app/data side so it is persistent through updates?
Here are the options I'm looking at:
https://github.com/mautrix/zulip
https://github.com/GearKite/MatrixZulipBridge -
I'm looking to install the Zulip bridge in order to connect our Matrix server with a Zulip chat that collaborators use. Supporting bridges somehow seems important, as bridging is really central to Matrix's value proposition. (Of course, it is absurd that bridging requires third-party software installation rather than some kind of simple, integrated plugin architecture.)
Is there a way to set this up on the app/data side so it is persistent through updates?
Here are the options I'm looking at:
https://github.com/mautrix/zulip
https://github.com/GearKite/MatrixZulipBridge@ntnsndr You'll need to packge it. Since the whatsapp brige (also go based) runs pretty well, I would assume, this one should be also easy to package.
-
Updated bridge to v25.12
andreasdueren/mautrix-whatsapp-cloudron:1.2.4 -
Thanks for packaging this bridge - it actually motivated me to discover and deploy Matrix

I’m trying to set it up alongside the Synapse app from the Cloudron store, but I’m currently stuck with the following issue.
What I did
- Installed the Matrix (Synapse) app from the Cloudron app store
- Installed the mautrix-whatsapp bridge
- Added the registration file generated by the bridge to the Synapse app
- Restarted Synapse
- Sent
loginto@whatsappbot:domain.com
What happens
I consistently get:
️ Your message was not bridged: the bridge hasn't received the decryption keys
Bridge logs
The bridge fails to sync and retries indefinitely:
Dec 25 19:22:40 2025-12-25T18:22:40.932Z DBG Request completed as_user_id=@whatsappbot:domain.com duration=6.873778 method=GET req_id=477 response_length=55 response_mime=application/json status_code=500 url=https://matrix.domain.com/_matrix/client/v3/sync?filter=0&timeout=0&user_id=%40whatsappbot%3Adomain.com Dec 25 19:22:50 2025-12-25T18:22:50.939Z ERR Error /syncing, waiting 10 seconds error="M_UNKNOWN (HTTP 500): Internal server error" component=crypto
Synapse logs (version 1.144.0)
Synapse returns HTTP 500 on
/syncfor the bridge user, with aNotImplementedError:Dec 25 19:28:11 2025-12-25 18:28:11,245 - synapse.access.http.8008 - 521 - INFO - GET-887 - 172.18.20.179 - 8008 - {@whatsappbot:domain.com} Processed request: 0.004sec/0.000sec (0.001sec, 0.000sec) (0.000sec/0.001sec/1) 55B 500 "GET /_matrix/client/v3/sync?filter=0&timeout=0&user_id=%40whatsappbot%3Adomain.com HTTP/1.1" "mautrix-whatsapp/v25.12+dev.1f06bd38 mautrix-go/v0.26.1 go/1.25.5" [0 dbevts]Followed by this stacktrace:
Dec 25 19:28:21 2025-12-25 18:28:21,251 - synapse.http.server - 147 - ERROR - GET-892 - Failed handle request via 'SyncRestServlet': <XForwardedForRequest at 0x7657785cd910 method='GET' uri='/_matrix/client/v3/sync?filter=0&timeout=0&user_id=%40whatsappbot%3Adomain.com' clientproto='HTTP/1.1' site='8008'> Dec 25 19:28:21 Traceback (most recent call last): Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/http/server.py", line 335, in _async_render_wrapper Dec 25 19:28:21 callback_return = await self._async_render(request) Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/http/server.py", line 576, in _async_render Dec 25 19:28:21 callback_return = await raw_callback_return Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/rest/client/sync.py", line 269, in on_GET Dec 25 19:28:21 sync_result = await self.sync_handler.wait_for_sync_for_user( Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/handlers/sync.py", line 358, in wait_for_sync_for_user Dec 25 19:28:21 res = await self.response_cache.wrap( Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/handlers/sync.py", line 527, in current_sync_for_user Dec 25 19:28:21 sync_result = await self.generate_sync_result( Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/handlers/sync.py", line 1660, in generate_sync_result Dec 25 19:28:21 raise NotImplementedError() Dec 25 19:28:21 NotImplementedError
Summary
It looks like the bridge calls:
/_matrix/client/v3/sync?filter=0&timeout=0for
@whatsappbot, which causes Synapse 1.144.0 to return HTTP 500 with aNotImplementedError.
Because/syncfails, the bridge can’t receive encryption keys and messages are not bridged.Do you have any idea what could be wrong here ?
I didn’t manage to find a solution in the official documentation. -
Thanks for packaging this bridge - it actually motivated me to discover and deploy Matrix

I’m trying to set it up alongside the Synapse app from the Cloudron store, but I’m currently stuck with the following issue.
What I did
- Installed the Matrix (Synapse) app from the Cloudron app store
- Installed the mautrix-whatsapp bridge
- Added the registration file generated by the bridge to the Synapse app
- Restarted Synapse
- Sent
loginto@whatsappbot:domain.com
What happens
I consistently get:
️ Your message was not bridged: the bridge hasn't received the decryption keys
Bridge logs
The bridge fails to sync and retries indefinitely:
Dec 25 19:22:40 2025-12-25T18:22:40.932Z DBG Request completed as_user_id=@whatsappbot:domain.com duration=6.873778 method=GET req_id=477 response_length=55 response_mime=application/json status_code=500 url=https://matrix.domain.com/_matrix/client/v3/sync?filter=0&timeout=0&user_id=%40whatsappbot%3Adomain.com Dec 25 19:22:50 2025-12-25T18:22:50.939Z ERR Error /syncing, waiting 10 seconds error="M_UNKNOWN (HTTP 500): Internal server error" component=crypto
Synapse logs (version 1.144.0)
Synapse returns HTTP 500 on
/syncfor the bridge user, with aNotImplementedError:Dec 25 19:28:11 2025-12-25 18:28:11,245 - synapse.access.http.8008 - 521 - INFO - GET-887 - 172.18.20.179 - 8008 - {@whatsappbot:domain.com} Processed request: 0.004sec/0.000sec (0.001sec, 0.000sec) (0.000sec/0.001sec/1) 55B 500 "GET /_matrix/client/v3/sync?filter=0&timeout=0&user_id=%40whatsappbot%3Adomain.com HTTP/1.1" "mautrix-whatsapp/v25.12+dev.1f06bd38 mautrix-go/v0.26.1 go/1.25.5" [0 dbevts]Followed by this stacktrace:
Dec 25 19:28:21 2025-12-25 18:28:21,251 - synapse.http.server - 147 - ERROR - GET-892 - Failed handle request via 'SyncRestServlet': <XForwardedForRequest at 0x7657785cd910 method='GET' uri='/_matrix/client/v3/sync?filter=0&timeout=0&user_id=%40whatsappbot%3Adomain.com' clientproto='HTTP/1.1' site='8008'> Dec 25 19:28:21 Traceback (most recent call last): Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/http/server.py", line 335, in _async_render_wrapper Dec 25 19:28:21 callback_return = await self._async_render(request) Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/http/server.py", line 576, in _async_render Dec 25 19:28:21 callback_return = await raw_callback_return Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/rest/client/sync.py", line 269, in on_GET Dec 25 19:28:21 sync_result = await self.sync_handler.wait_for_sync_for_user( Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/handlers/sync.py", line 358, in wait_for_sync_for_user Dec 25 19:28:21 res = await self.response_cache.wrap( Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/handlers/sync.py", line 527, in current_sync_for_user Dec 25 19:28:21 sync_result = await self.generate_sync_result( Dec 25 19:28:21 File "/app/code/env/lib/python3.12/site-packages/synapse/handlers/sync.py", line 1660, in generate_sync_result Dec 25 19:28:21 raise NotImplementedError() Dec 25 19:28:21 NotImplementedError
Summary
It looks like the bridge calls:
/_matrix/client/v3/sync?filter=0&timeout=0for
@whatsappbot, which causes Synapse 1.144.0 to return HTTP 500 with aNotImplementedError.
Because/syncfails, the bridge can’t receive encryption keys and messages are not bridged.Do you have any idea what could be wrong here ?
I didn’t manage to find a solution in the official documentation.@Eliahou unfortunately I can’t really help you with this because I’m running it unencrypted on my side. But yes when I used it a while ago with encryption I had similar errors.