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")
Assignee Loading
Time tracking Loading