diff --git a/app/src/behaviors/behavior_sticky_key.c b/app/src/behaviors/behavior_sticky_key.c
index 61c86fb7..e63d4d12 100644
--- a/app/src/behaviors/behavior_sticky_key.c
+++ b/app/src/behaviors/behavior_sticky_key.c
@@ -182,9 +182,8 @@ static int on_sticky_key_binding_released(struct zmk_behavior_binding *binding,
     sticky_key->release_at = event.timestamp + sticky_key->config->release_after_ms;
     // adjust timer in case this behavior was queued by a hold-tap
     int32_t ms_left = sticky_key->release_at - k_uptime_get();
-    if (ms_left > 0) {
-        k_work_schedule(&sticky_key->release_timer, K_MSEC(ms_left));
-    }
+    ms_left = ms_left > 0 ? ms_left : 1;
+    k_work_schedule(&sticky_key->release_timer, K_MSEC(ms_left));
     return ZMK_BEHAVIOR_OPAQUE;
 }