diff --git a/server/service/integration_core_test.go b/server/service/integration_core_test.go index 1a9d2bad7c..92098be959 100644 --- a/server/service/integration_core_test.go +++ b/server/service/integration_core_test.go @@ -7992,6 +7992,14 @@ func (s *integrationTestSuite) TestQueryReports() { }) require.NoError(t, err) + // Should return no results. + var gqrr getQueryReportResponse + s.DoJSON("GET", fmt.Sprintf("/api/latest/fleet/queries/%d/report", usbDevicesQuery.ID), getQueryReportRequest{}, http.StatusOK, &gqrr) + require.NoError(t, gqrr.Err) + require.Equal(t, usbDevicesQuery.ID, gqrr.QueryID) + require.NotNil(t, gqrr.Results) + require.Len(t, gqrr.Results, 0) + slreq := submitLogsRequest{ NodeKey: *host2Team1.NodeKey, LogType: "result", @@ -8113,7 +8121,7 @@ func (s *integrationTestSuite) TestQueryReports() { s.DoJSON("POST", "/api/osquery/log", slreq, http.StatusOK, &slres) require.NoError(t, slres.Err) - var gqrr getQueryReportResponse + gqrr = getQueryReportResponse{} s.DoJSON("GET", fmt.Sprintf("/api/latest/fleet/queries/%d/report", usbDevicesQuery.ID), getQueryReportRequest{}, http.StatusOK, &gqrr) require.NoError(t, gqrr.Err) require.Equal(t, usbDevicesQuery.ID, gqrr.QueryID) diff --git a/server/service/queries.go b/server/service/queries.go index 77abcde504..6304df1ee5 100644 --- a/server/service/queries.go +++ b/server/service/queries.go @@ -144,9 +144,14 @@ func getQueryReportEndpoint(ctx context.Context, request interface{}, svc fleet. if err != nil { return listQueriesResponse{Err: err}, nil } + // Return an empty array if there are no results stored. + results := []fleet.HostQueryResultRow{} + if len(queryReportResults) > 0 { + results = queryReportResults + } return getQueryReportResponse{ QueryID: req.ID, - Results: queryReportResults, + Results: results, }, nil }