Skip to content

Commit b2eacd7

Browse files
committed
Handle/log unexpected errors
1 parent d0fd21c commit b2eacd7

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

app/models/tasks/record_stream_task.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ def update_owner
6767
stream_resource.tasks.fix_media.update_all(status: :cancelled)
6868
stream_resource.copy_media
6969
end
70+
rescue => err
71+
Rails.logger.error("RecordStreamTask update_owner error", error: err)
72+
NewRelic::Agent.notice_error(err)
7073
end
7174

7275
# parsing data from the job_id

test/models/tasks/record_stream_task_test.rb

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,37 @@
166166
end
167167
end
168168
end
169+
170+
it "handles recording errors" do
171+
new_res = StreamResource.new(start_at: "2026-09-09T10:00:00Z", end_at: "2026-09-09T11:00:00Z")
172+
task.owner = new_res
173+
task.update(status: "error")
174+
175+
assert new_res.persisted?
176+
assert_equal new_res.status, "error"
177+
assert_nil new_res.actual_start_at
178+
assert_nil new_res.actual_end_at
179+
end
180+
181+
it "logs validation errors" do
182+
mock_log = Minitest::Mock.new.expect(:call, nil) { true }
183+
mock_notice = Minitest::Mock.new.expect(:call, nil) { true }
184+
185+
Rails.logger.stub(:error, mock_log) do
186+
NewRelic::Agent.stub(:notice_error, mock_notice) do
187+
new_res = StreamResource.new(start_at: "2026-09-09T10:00:00Z", end_at: nil)
188+
task.owner = new_res
189+
task.update(status: "error")
190+
191+
assert_equal "error", task.status
192+
refute task.changed?
193+
refute new_res.persisted?
194+
end
195+
end
196+
197+
mock_log.verify
198+
mock_notice.verify
199+
end
169200
end
170201

171202
describe "#job_id_parts" do

0 commit comments

Comments
 (0)