static async cancelHunt (req, res) {
    try {
      const { body: { _source: hunt } } = await Db.getHunt(req.params.id, req.query.cluster);

      const error = { // save that the user canceled the hunt
        time: Math.floor(Date.now() / 1000),
        value: `${req.user.userId} canceled hunt.`
      };

      if (!hunt.errors) {
        hunt.errors = [error];
      } else {
        hunt.errors.push(error);
      }

      await Db.updateHunt(req.params.id, { status: 'finished', errors: hunt.errors }, req.query.cluster);
      internals.runningHuntJob = undefined;
      HuntAPIs.processHuntJobs();
      return res.send(JSON.stringify({ success: true, text: 'Canceled hunt successfully' }));
    } catch (err) {
      console.log(`ERROR - ${req.method} /api/hunt/%s/cancel`, ArkimeUtil.sanitizeStr(req.params.id), util.inspect(err, false, 50));
      return res.serverError(500, 'Error canceling hunt');
    }
  }
PUT - /api/hunt/:id/cancel

Cancel a hunt. Finishes the hunt and puts it into the hunt history.
@name /hunt/:id/cancel
@returns {boolean} success - Whether the cancel hunt operation was successful.
@returns {string} text - The success/error message to (optionally) display to the user.