diff --git a/src/database/key_value/rooms/edus/presence.rs b/src/database/key_value/rooms/edus/presence.rs
index 544f15376322e09abc18285b643621e8318406db..85f9b848a99abb07541c07d61b90b0b2782f774b 100644
--- a/src/database/key_value/rooms/edus/presence.rs
+++ b/src/database/key_value/rooms/edus/presence.rs
@@ -3,6 +3,7 @@
 use ruma::{
     events::presence::PresenceEvent, presence::PresenceState, OwnedUserId, RoomId, UInt, UserId,
 };
+use tracing::error;
 
 use crate::{
     database::KeyValueDatabase,
@@ -83,7 +84,10 @@ fn ping_presence(&self, user_id: &UserId, new_state: PresenceState) -> Result<()
 
         self.presence_timer_sender
             .send((user_id.to_owned(), Duration::from_secs(timeout)))
-            .map_err(|_| Error::bad_database("Failed to add presence timer"))
+            .map_err(|e| {
+                error!("Failed to add presence timer: {}", e);
+                Error::bad_database("Failed to add presence timer")
+            })
     }
 
     fn set_presence(
@@ -118,7 +122,10 @@ fn set_presence(
 
         self.presence_timer_sender
             .send((user_id.to_owned(), Duration::from_secs(timeout)))
-            .map_err(|_| Error::bad_database("Failed to add presence timer"))?;
+            .map_err(|e| {
+                error!("Failed to add presence timer: {}", e);
+                Error::bad_database("Failed to add presence timer")
+            })?;
 
         self.roomuserid_presence
             .insert(&key, &presence.to_json_bytes()?)?;