diff --git a/Content.Shared/Trigger/Components/TimerTriggerComponent.cs b/Content.Shared/Trigger/Components/TimerTriggerComponent.cs
index 9cc58d3cda..f413ab5d4f 100644
--- a/Content.Shared/Trigger/Components/TimerTriggerComponent.cs
+++ b/Content.Shared/Trigger/Components/TimerTriggerComponent.cs
@@ -75,6 +75,7 @@ public sealed partial class TimerTriggerComponent : Component
///
/// The entity that activated this trigger.
+ /// TODO: use WeakEntityReference once the engine PR is merged!
///
[DataField, AutoNetworkedField]
public EntityUid? User;
diff --git a/Content.Shared/Trigger/Systems/TriggerSystem.Timer.cs b/Content.Shared/Trigger/Systems/TriggerSystem.Timer.cs
index 58ac43e571..179b04af93 100644
--- a/Content.Shared/Trigger/Systems/TriggerSystem.Timer.cs
+++ b/Content.Shared/Trigger/Systems/TriggerSystem.Timer.cs
@@ -168,7 +168,8 @@ public sealed partial class TriggerSystem
if (timer.NextTrigger <= curTime)
{
- Trigger(uid, timer.User, timer.KeyOut);
+ var user = TerminatingOrDeleted(timer.User) ? null : timer.User;
+ Trigger(uid, user, timer.KeyOut);
// Remove after triggering to prevent it from starting the timer again
RemComp(uid);
if (TryComp(uid, out var appearance))
diff --git a/Content.Shared/Trigger/Systems/TriggerSystem.cs b/Content.Shared/Trigger/Systems/TriggerSystem.cs
index ca60901a79..25f8d51e11 100644
--- a/Content.Shared/Trigger/Systems/TriggerSystem.cs
+++ b/Content.Shared/Trigger/Systems/TriggerSystem.cs
@@ -107,6 +107,7 @@ public sealed partial class TriggerSystem : EntitySystem
ent.Comp.NextTrigger = curTime + ent.Comp.Delay;
var delay = ent.Comp.InitialBeepDelay ?? ent.Comp.BeepInterval;
ent.Comp.NextBeep = curTime + delay;
+ ent.Comp.User = user;
Dirty(ent);
var ev = new ActiveTimerTriggerEvent(user);