Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Packaging & Development
  3. Matrix WhatsApp Bridge

Matrix WhatsApp Bridge

Scheduled Pinned Locked Moved App Packaging & Development
28 Posts 8 Posters 4.0k Views 11 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • girishG Offline
    girishG Offline
    girish
    Staff
    wrote on last edited by
    #19

    @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.

    andreasduerenA 1 Reply Last reply
    1
    • girishG girish

      @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.

      andreasduerenA Offline
      andreasduerenA Offline
      andreasdueren
      wrote on last edited by
      #20

      @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.

      1 Reply Last reply
      1
      • andreasduerenA Offline
        andreasduerenA Offline
        andreasdueren
        wrote on last edited by
        #21

        Updated bridge to v0.2510.0

        https://git.due.ren/andreas/mautrix-whatsapp-cloudron/releases/tag/v2.0.0

        1 Reply Last reply
        1
        • N Offline
          N Offline
          ntnsndr
          wrote on last edited by
          #22

          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

          andreasduerenA 1 Reply Last reply
          2
          • N ntnsndr

            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

            andreasduerenA Offline
            andreasduerenA Offline
            andreasdueren
            wrote on last edited by
            #23

            @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.

            1 Reply Last reply
            1
            • andreasduerenA Offline
              andreasduerenA Offline
              andreasdueren
              wrote last edited by
              #24

              Updated bridge to v25.12

              andreasdueren/mautrix-whatsapp-cloudron:1.2.4

              1 Reply Last reply
              3
              • E Offline
                E Offline
                Eliahou
                wrote last edited by
                #25

                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 login to @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 /sync for the bridge user, with a NotImplementedError:

                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=0
                

                for @whatsappbot, which causes Synapse 1.144.0 to return HTTP 500 with a NotImplementedError.
                Because /sync fails, 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.

                andreasduerenA 1 Reply Last reply
                0
                • E Eliahou

                  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 login to @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 /sync for the bridge user, with a NotImplementedError:

                  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=0
                  

                  for @whatsappbot, which causes Synapse 1.144.0 to return HTTP 500 with a NotImplementedError.
                  Because /sync fails, 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.

                  andreasduerenA Offline
                  andreasduerenA Offline
                  andreasdueren
                  wrote last edited by
                  #26

                  @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.

                  1 Reply Last reply
                  0
                  • robiR Offline
                    robiR Offline
                    robi
                    wrote last edited by
                    #27

                    Any clues from upstream git repo issues?

                    Conscious tech

                    andreasduerenA 1 Reply Last reply
                    0
                    • robiR robi

                      Any clues from upstream git repo issues?

                      andreasduerenA Offline
                      andreasduerenA Offline
                      andreasdueren
                      wrote last edited by
                      #28

                      @robi didn’t find any when I tried to investigate. But since it’s pretty much stored in plain text on the other side I decided I may as well store it plain text on mine. Encryption and bridges/bots are just not a good fit

                      1 Reply Last reply
                      1
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Bookmarks
                      • Search