{"record":{"id":"e712e3c111dc2050","repo":"discourse/discourse","slug":"discourse-notfound-e712e3","errorCode":null,"errorMessage":"Discourse::NotFound","messagePattern":"Discourse::NotFound","errorType":"exception","errorClass":"Discourse::NotFound","httpStatus":404,"severity":"error","filePath":"app/controllers/admin/search_logs_controller.rb","lineNumber":18,"sourceCode":"# frozen_string_literal: true\n\nclass Admin::SearchLogsController < Admin::StaffController\n  def index\n    period = params[:period] || \"all\"\n    search_type = params[:search_type] || \"all\"\n    render_serialized(SearchLog.trending(period&.to_sym, search_type&.to_sym), SearchLogsSerializer)\n  end\n\n  def term\n    params.require(:term)\n\n    term = params[:term]\n    period = params[:period] || \"quarterly\"\n    search_type = params[:search_type] || \"all\"\n\n    details = SearchLog.term_details(term, period&.to_sym, search_type&.to_sym)\n    raise Discourse::NotFound if details.blank?\n\n    result = Search.execute(params[:term], guardian: guardian)\n    details[:search_result] = serialize_data(result, GroupedSearchResultSerializer, result: result)\n    render_json_dump(term: details)\n  end\nend\n","sourceCodeStart":1,"sourceCodeEnd":25,"githubUrl":"https://github.com/discourse/discourse/blob/1b2d7253e854205d2c95c80b2c6a1cdd42e45059/app/controllers/admin/search_logs_controller.rb#L1-L25","documentation":"Error \"Discourse::NotFound\" thrown in discourse/discourse.","triggerScenarios":"Thrown at app/controllers/admin/search_logs_controller.rb:18 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1b2d7253e854205d2c95c80b2c6a1cdd42e45059","analyzedAt":"2026-08-26T03:11:08.302Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}