diff --git a/server/datastore/mysql/policies.go b/server/datastore/mysql/policies.go index b2c90b91ba..36670195ca 100644 --- a/server/datastore/mysql/policies.go +++ b/server/datastore/mysql/policies.go @@ -748,6 +748,10 @@ func (ds *Datastore) CleanupPolicyMembership(ctx context.Context, now time.Time) } func (ds *Datastore) UpdatePolicyFailureCountsForHosts(ctx context.Context, hosts []*fleet.Host) ([]*fleet.Host, error) { + if len(hosts) == 0 { + return hosts, nil + } + // Get policy failure counts for each host hostIDs := make([]uint, 0, len(hosts)) diff --git a/server/datastore/mysql/policies_test.go b/server/datastore/mysql/policies_test.go index fc7a6c4510..3a84fe3288 100644 --- a/server/datastore/mysql/policies_test.go +++ b/server/datastore/mysql/policies_test.go @@ -2271,4 +2271,9 @@ func testUpdatePolicyFailureCountsForHosts(t *testing.T, ds *Datastore) { // host 3 doesn't have any policy membership assert.Equal(t, 0, hostsUpdated[3].TotalIssuesCount) assert.Equal(t, 0, hostsUpdated[3].FailingPoliciesCount) + + // return empty list if no hosts are passed + hostsUpdated, err = ds.UpdatePolicyFailureCountsForHosts(ctx, []*fleet.Host{}) + require.NoError(t, err) + require.Len(t, hostsUpdated, 0) }