StateMachines::InvalidTransition: Cannot transition status via :drop from :failed (Reason(s): Status cannot transition via "drop")
https://sentry.gitlab.net/gitlab/gitlabcom/issues/1050152/
ActiveRecord::RecordNotSaved: Failed to remove the existing associated runner_session. The record failed to save after its foreign key was set to nil.
active_record/associations/has_one_association.rb:93:in `remove_target!'
raise RecordNotSaved, "Failed to remove the existing associated #{reflection.name}. " \
active_record/associations/has_one_association.rb:37:in `block in replace'
remove_target!(options[:dependent]) if target && !target.destroyed? && assigning_another_record
active_record/associations/has_one_association.rb:107:in `transaction_if'
yield
active_record/associations/has_one_association.rb:36:in `replace'
transaction_if(save) do
active_record/associations/has_one_association.rb:77:in `set_new_record'
replace(record, false)
...
(142 additional frame(s) were not displayed)
StateMachines::InvalidTransition: Cannot transition status via :drop from :failed (Reason(s): Status cannot transition via "drop")
state_machines/event.rb:224:in `block in add_actions'
object.send(qualified_name, *args) || raise(StateMachines::InvalidTransition.new(object, machine, name))
state_machines/machine.rb:729:in `block (2 levels) in define_helper'
block.call((scope == :instance ? self.class : self).state_machine(name), self, *block_args)
ci/register_job_service.rb:120:in `block in scheduler_failure!'
subject.drop!(:scheduler_failure)
gitlab/optimistic_locking.rb:11:in `block in retry_lock'
yield(subject)
active_record/connection_adapters/abstract/database_statements.rb:267:in `block in transaction'
transaction_manager.within_new_transaction(isolation: isolation, joinable: joinable) { yield }
...
(151 additional frame(s) were not displayed)
StateMachines::InvalidTransition: Cannot transition status via :drop from :failed (Reason(s): Status cannot transition via "drop")