diff --git a/src/database.rs b/src/database.rs
index abfad85a..7483c93c 100644
--- a/src/database.rs
+++ b/src/database.rs
@@ -1071,6 +1071,13 @@ impl KeyValueDatabase {
Ok(())
})?;
+ // Ensure the admin bot localpart has been written once
+ if services().globals.saved_admin_bot_localpart()?.is_none() {
+ services().globals.save_admin_bot_localpart(
+ services().globals.admin_bot_user_id.localpart(),
+ )?;
+ }
+
assert_eq!(
services().globals.database_version().unwrap(),
latest_database_version,
diff --git a/src/database/key_value/globals.rs b/src/database/key_value/globals.rs
index 7934535f..7abd2f66 100644
--- a/src/database/key_value/globals.rs
+++ b/src/database/key_value/globals.rs
@@ -385,4 +385,26 @@ lasttimelinecount_cache: {lasttimelinecount_cache}\n"
Ok(Some(server_name))
}
+
+ fn set_admin_bot_localpart(&self, localpart: &str) -> Result<()> {
+ self.global.insert(b"admin_bot_localpart", localpart.as_bytes())
+ }
+
+ fn admin_bot_localpart(&self) -> Result