diff --git a/lib/raven/integrations/delayed_job.rb b/lib/raven/integrations/delayed_job.rb index eef800100..e66728c83 100644 --- a/lib/raven/integrations/delayed_job.rb +++ b/lib/raven/integrations/delayed_job.rb @@ -42,6 +42,9 @@ class Raven < ::Delayed::Plugin # Make sure we propagate the failure! raise exception + ensure + Context.clear! + BreadcrumbBuffer.clear! end end end diff --git a/lib/raven/integrations/rack.rb b/lib/raven/integrations/rack.rb index 6f37922d6..0d8dc95cc 100644 --- a/lib/raven/integrations/rack.rb +++ b/lib/raven/integrations/rack.rb @@ -41,10 +41,6 @@ def initialize(app) end def call(env) - # clear context at the beginning of the request to ensure a clean slate - Context.clear! - BreadcrumbBuffer.clear! - # store the current environment in our local context for arbitrary # callers env['raven.requested_at'] = Time.now @@ -64,6 +60,9 @@ def call(env) Raven::Rack.capture_exception(error, env) if error response + ensure + Context.clear! + BreadcrumbBuffer.clear! end end diff --git a/lib/raven/integrations/sidekiq.rb b/lib/raven/integrations/sidekiq.rb index 71a5e9820..7eda5f9d4 100644 --- a/lib/raven/integrations/sidekiq.rb +++ b/lib/raven/integrations/sidekiq.rb @@ -10,6 +10,9 @@ def call(_worker, msg, _queue) Raven.capture_exception(ex, :extra => { :sidekiq => msg }, :time_spent => Time.now-started_at) raise + ensure + Context.clear! + BreadcrumbBuffer.clear! end end end