Upgrade from 0.5.0-rc8.1 to v0.5.0 crashes server with appservice registration issues #1243

Closed
opened 2025-12-25 22:42:28 +00:00 by Xinayder · 4 comments

I just decided to upgrade my server after the newest release, and upon downloading the new Docker image and restarting my container, I can no longer use Conduit, due to a fatal error with appservice registration:

2025-12-25T22:36:53.670708Z  WARN conduwuit_core::config::check: No support contact information (support_email or support_mxid) is configured in the well_known section. Users in the admin room will be automatically listed as support contacts in the /.well-known/matrix/support endpoint.
2025-12-25T22:36:53.670751Z  INFO conduwuit::server: 0.5.0 (fb5b515) server_name=xndr.it database_path="/var/lib/conduwuit" log_levels=debug
warning: some trace filter directives would enable traces that are disabled statically
 | `debug` would enable the DEBUG level for all targets
 = note: the static max level is `info`
 = help: to enable DEBUG logging, remove the `max_level_info` feature from the `tracing` crate
2025-12-25T22:36:54.289616Z  INFO main:start:open: conduwuit_database::engine::open: Opened database. columns=91 sequence=1289897271 time=601.252217ms
2025-12-25T22:36:54.445270Z  INFO main:start: conduwuit_service::migrations: Loaded RocksDB database with schema version 18
  2025-12-25T22:36:54.446789Z ERROR conduwuit_service::manager: service "appservice" aborted: Invalid appservice "" registration: cannot deserialize null into string; use Option<String> at line 1, column 3
    at src/service/manager.rs:132 on conduwuit:worker ThreadId(3)

2025-12-25T22:36:54.461600Z  INFO conduwuit_router::serve::plain: Listening on [0.0.0.0:6167]
  2025-12-25T22:36:54.462225Z ERROR conduwuit: Critical error running server: Invalid appservice "" registration: cannot deserialize null into string; use Option<String> at line 1, column 3
    at src/main/mod.rs:76 on main ThreadId(1)
    in conduwuit::main

Error: Invalid appservice "" registration: cannot deserialize null into string; use Option<String> at line 1, column 3

I rolled back to v0.5.0-rc.8.1 and it works. And it's impossible to fix this issue without rolling back a version, because the appservice management requires the server to be up and running.

The appservices I have running are mautrix/meta and mautrix/whatsapp bridges.

I just decided to upgrade my server after the newest release, and upon downloading the new Docker image and restarting my container, I can no longer use Conduit, due to a fatal error with appservice registration: ```bash 2025-12-25T22:36:53.670708Z WARN conduwuit_core::config::check: No support contact information (support_email or support_mxid) is configured in the well_known section. Users in the admin room will be automatically listed as support contacts in the /.well-known/matrix/support endpoint. 2025-12-25T22:36:53.670751Z INFO conduwuit::server: 0.5.0 (fb5b515) server_name=xndr.it database_path="/var/lib/conduwuit" log_levels=debug warning: some trace filter directives would enable traces that are disabled statically | `debug` would enable the DEBUG level for all targets = note: the static max level is `info` = help: to enable DEBUG logging, remove the `max_level_info` feature from the `tracing` crate 2025-12-25T22:36:54.289616Z INFO main:start:open: conduwuit_database::engine::open: Opened database. columns=91 sequence=1289897271 time=601.252217ms 2025-12-25T22:36:54.445270Z INFO main:start: conduwuit_service::migrations: Loaded RocksDB database with schema version 18 2025-12-25T22:36:54.446789Z ERROR conduwuit_service::manager: service "appservice" aborted: Invalid appservice "" registration: cannot deserialize null into string; use Option<String> at line 1, column 3 at src/service/manager.rs:132 on conduwuit:worker ThreadId(3) 2025-12-25T22:36:54.461600Z INFO conduwuit_router::serve::plain: Listening on [0.0.0.0:6167] 2025-12-25T22:36:54.462225Z ERROR conduwuit: Critical error running server: Invalid appservice "" registration: cannot deserialize null into string; use Option<String> at line 1, column 3 at src/main/mod.rs:76 on main ThreadId(1) in conduwuit::main Error: Invalid appservice "" registration: cannot deserialize null into string; use Option<String> at line 1, column 3 ``` I rolled back to v0.5.0-rc.8.1 and it works. And it's impossible to fix this issue without rolling back a version, because the appservice management requires the server to be up and running. The appservices I have running are `mautrix/meta` and `mautrix/whatsapp` bridges.
Author

Upon further investigation I found out I had two unused services:

Appservices (4): , meta, telegram, whatsapp

I could unregister telegram successfully as I'm not using it, but the first appservice has an empty name and I have no idea how to unregister it, as the commands fail assuming there is an empty parameter passed to the commands.

Upon further investigation I found out I had two unused services: `Appservices (4): , meta, telegram, whatsapp` I could unregister telegram successfully as I'm not using it, but the first appservice has an empty name and I have no idea how to unregister it, as the commands fail assuming there is an empty parameter passed to the commands.
nex added this to the 0.5.2 milestone 2025-12-27 04:08:59 +00:00
Jade closed this issue 2026-01-06 00:12:06 +00:00
Xinayder reopened this issue 2026-03-06 13:30:51 +00:00
Author

I just tried updating from v0.5.0-rc.8.1 to v0.5.6 and this issue still exists:

yggdrasil@jotunheim:~ λ podman logs conduit
warning: some trace filter directives would enable traces that are disabled statically
 | `debug` would enable the DEBUG level for all targets
 = note: the static max level is `info`
 = help: to enable DEBUG logging, remove the `max_level_info` feature from the `tracing` crate
2026-03-06T13:30:04.348631Z  WARN conduwuit_core::config::check: No support contact information (support_email or support_mxid) is configured in the well_known section. Users in the admin room will be automatically listed as support contacts in the /.well-known/matrix/support endpoint.
2026-03-06T13:30:04.348689Z  INFO conduwuit::server: 0.5.6 (2c72338) server_name=xndr.it database_path="/var/lib/conduwuit" log_levels=debug
2026-03-06T13:30:05.022953Z  INFO main:start:open: conduwuit_database::engine::open: Opened database. columns=95 sequence=2176759558 time=653.824652ms
2026-03-06T13:30:05.197727Z  INFO main:start: conduwuit_service::migrations: Loaded RocksDB database with schema version 18
  2026-03-06T13:30:05.201714Z ERROR conduwuit_service::manager: service "appservice" aborted: Invalid appservice "" registration: error: line 1 column 3: cannot deserialize null into string; use Option<String>
 --> <input>:1:3
  |
1 | id:
  |   ^ cannot deserialize null into string; use Option<String>
2 | as_token: 0iVZMEgjFwVkpztiE6CVvM5M4GmKBuWwsHe03A8DLYM9b3Jquwtyh_3s9…
3 | hs_token: Hkts5LdjAukgc8cYL9MIUPNe3Mk6EHtPBInG0fZvVmj22HUS2YJPYjoSo…
  |
    at src/service/manager.rs:132 on conduwuit:worker ThreadId(6)

2026-03-06T13:30:05.225217Z  INFO conduwuit_router::serve::plain: Listening on [0.0.0.0:6167]

is there a way I can just remove the offending appservice from the database, manually? It seems like the fix is not being triggered.

EDIT: FYI the appservice with empty name was registered by passing an empty id in the YAML configuration:

id:
as_token: token
hs_token: token
namespaces:
    users:
    - exclusive: true
      regex: '@telegram_.*:xndr\.it'
    - exclusive: true
      regex: '@telegrambot:xndr\.it'
    aliases:
    - exclusive: true
      regex: \#telegram_.*:xndr\.it
url: http://telegram:29317
sender_localpart: 7kgPL5P5w_Oy2iYhTi36lfSBPOwxFjIUbsagABBC6PN72kCWMmLbQ4lqAS3UvgKT
rate_limited: false
de.sorunome.msc2409.push_ephemeral: true
receive_ephemeral: true
I just tried updating from v0.5.0-rc.8.1 to v0.5.6 and this issue still exists: ```bash yggdrasil@jotunheim:~ λ podman logs conduit warning: some trace filter directives would enable traces that are disabled statically | `debug` would enable the DEBUG level for all targets = note: the static max level is `info` = help: to enable DEBUG logging, remove the `max_level_info` feature from the `tracing` crate 2026-03-06T13:30:04.348631Z WARN conduwuit_core::config::check: No support contact information (support_email or support_mxid) is configured in the well_known section. Users in the admin room will be automatically listed as support contacts in the /.well-known/matrix/support endpoint. 2026-03-06T13:30:04.348689Z INFO conduwuit::server: 0.5.6 (2c72338) server_name=xndr.it database_path="/var/lib/conduwuit" log_levels=debug 2026-03-06T13:30:05.022953Z INFO main:start:open: conduwuit_database::engine::open: Opened database. columns=95 sequence=2176759558 time=653.824652ms 2026-03-06T13:30:05.197727Z INFO main:start: conduwuit_service::migrations: Loaded RocksDB database with schema version 18 2026-03-06T13:30:05.201714Z ERROR conduwuit_service::manager: service "appservice" aborted: Invalid appservice "" registration: error: line 1 column 3: cannot deserialize null into string; use Option<String> --> <input>:1:3 | 1 | id: | ^ cannot deserialize null into string; use Option<String> 2 | as_token: 0iVZMEgjFwVkpztiE6CVvM5M4GmKBuWwsHe03A8DLYM9b3Jquwtyh_3s9… 3 | hs_token: Hkts5LdjAukgc8cYL9MIUPNe3Mk6EHtPBInG0fZvVmj22HUS2YJPYjoSo… | at src/service/manager.rs:132 on conduwuit:worker ThreadId(6) 2026-03-06T13:30:05.225217Z INFO conduwuit_router::serve::plain: Listening on [0.0.0.0:6167] ``` is there a way I can just remove the offending appservice from the database, manually? It seems like the fix is not being triggered. EDIT: FYI the appservice with empty name was registered by passing an empty `id` in the YAML configuration: ```yaml id: as_token: token hs_token: token namespaces: users: - exclusive: true regex: '@telegram_.*:xndr\.it' - exclusive: true regex: '@telegrambot:xndr\.it' aliases: - exclusive: true regex: \#telegram_.*:xndr\.it url: http://telegram:29317 sender_localpart: 7kgPL5P5w_Oy2iYhTi36lfSBPOwxFjIUbsagABBC6PN72kCWMmLbQ4lqAS3UvgKT rate_limited: false de.sorunome.msc2409.push_ephemeral: true receive_ephemeral: true ```
Owner

94c5af40cf

Cherry-picked, if you want to try again.

https://forgejo.ellis.link/continuwuation/continuwuity/commit/94c5af40cfb5a2c581c2c11bcf4b0fce0ba47420 Cherry-picked, if you want to try again.
Author

Just tested it, it works, thank you very much!

Just tested it, it works, thank you very much!
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity#1243
No description provided.