diff --git a/routers/web/repo/actions/actions.go b/routers/web/repo/actions/actions.go
index fc7ac2d714..8a44e836c5 100644
--- a/routers/web/repo/actions/actions.go
+++ b/routers/web/repo/actions/actions.go
@@ -162,12 +162,18 @@ func List(ctx *context.Context) {
 	ctx.Data["NumClosedActionRuns"] = numClosedRuns
 
 	opts.IsClosed = util.OptionalBoolNone
-	if ctx.FormString("state") == "closed" {
+	isShowClosed := ctx.FormString("state") == "closed"
+	if len(ctx.FormString("state")) == 0 && numOpenRuns == 0 && numClosedRuns != 0 {
+		isShowClosed = true
+	}
+
+	if isShowClosed {
 		opts.IsClosed = util.OptionalBoolTrue
 		ctx.Data["IsShowClosed"] = true
 	} else {
 		opts.IsClosed = util.OptionalBoolFalse
 	}
+
 	runs, total, err := actions_model.FindRuns(ctx, opts)
 	if err != nil {
 		ctx.Error(http.StatusInternalServerError, err.Error())