diff --git a/cmd/bucket-lifecycle.go b/cmd/bucket-lifecycle.go index 8e4a4a701..51d34bead 100644 --- a/cmd/bucket-lifecycle.go +++ b/cmd/bucket-lifecycle.go @@ -583,6 +583,10 @@ func enqueueTransitionImmediate(obj ObjectInfo, src lcEventSrc) { if lc, err := globalLifecycleSys.Get(obj.Bucket); err == nil { switch event := lc.Eval(obj.ToLifecycleOpts()); event.Action { case lifecycle.TransitionAction, lifecycle.TransitionVersionAction: + if obj.DeleteMarker || obj.IsDir { + // nothing to transition + return + } globalTransitionState.queueTransitionTask(obj, event, src) } } diff --git a/cmd/data-scanner.go b/cmd/data-scanner.go index 090578ab2..def5a2119 100644 --- a/cmd/data-scanner.go +++ b/cmd/data-scanner.go @@ -1233,7 +1233,7 @@ func evalActionFromLifecycle(ctx context.Context, lc lifecycle.Lifecycle, lr loc } func applyTransitionRule(event lifecycle.Event, src lcEventSrc, obj ObjectInfo) bool { - if obj.DeleteMarker { + if obj.DeleteMarker || obj.IsDir { return false } globalTransitionState.queueTransitionTask(obj, event, src)