diff --git a/app/controllers/api/v1/notices_controller.rb b/app/controllers/api/v1/notices_controller.rb index bd2bcaad..cf2e2140 100644 --- a/app/controllers/api/v1/notices_controller.rb +++ b/app/controllers/api/v1/notices_controller.rb @@ -28,10 +28,11 @@ module Api def site @site ||= Site.find(params[:site_id]) + rescue ActiveRecord::RecordNotFound end def verify_api_key - site.verifier.verify(airbrake_token, purpose: :airbrake) === Site::Api::AIRBRAKE_SECRET + site&.verifier&.verify(airbrake_token, purpose: :airbrake) === Site::Api::AIRBRAKE_SECRET rescue ActiveSupport::MessageVerifier::InvalidSignature false end diff --git a/app/jobs/backtrace_job.rb b/app/jobs/backtrace_job.rb index a7192fdc..9138039e 100644 --- a/app/jobs/backtrace_job.rb +++ b/app/jobs/backtrace_job.rb @@ -40,7 +40,7 @@ class BacktraceJob < ApplicationJob # Obtiene todos los archivos del backtrace def files - @files ||= params['errors'].map { |x| x['backtrace'] }.flatten.map { |x| x['file'].split('@').last }.uniq.select { |x| x.start_with? site.url } + @files ||= params['errors'].map { |x| x['backtrace'] }.flatten.map { |x| x['file'].split('@').last }.uniq.select { |x| x&.start_with?(site.url) } end # Asume que todos los sourcemaps comparten la misma URL, lo