CanineHQ/canine · error · Deployments::BaseDeploymentService::DeploymentFailure

Predeploy command `#{command}` took too long to complete

Error message

Predeploy command `#{command}` took too long to complete

What it means

Error "Predeploy command `#{command}` took too long to complete" thrown in CanineHQ/canine.

Source

Thrown at app/services/k8/stateless/command.rb:32

  def namespace
    project.name
  end

  def delete_if_exists!
    return if kubectl.call(%w[get job] + [ name, "-n", namespace ]).strip.empty?
    kubectl.call(%w[delete job] + [ name, "-n", namespace ])
  rescue StandardError => e
    nil
  end

  def wait_for_completion
    retries = 0
    while true
      break if done?
      sleep(3.0)
      retries += 1
      if retries > 30
        raise Deployments::BaseDeploymentService::DeploymentFailure, "Predeploy command `#{command}` took too long to complete"
      end
    end
  end

  def done?
    _statuses = statuses
    if _statuses.include?("Failed") || _statuses.include?("ActiveDeadlineExceeded")
      raise Deployments::BaseDeploymentService::DeploymentFailure, "Predeploy command `#{command}` failed"
    end
    _statuses.include?("Complete")
  end

  def statuses
    begin
      output = kubectl.call(%w[get job] + [ name, "-n", namespace, "-o", "jsonpath={.status.conditions[*].type}" ])
      conditions = output.split
      conditions.map { |condition| condition.strip }
    rescue => e

View on GitHub (pinned to ba4ee3968d)

When it happens

Trigger: Thrown at app/services/k8/stateless/command.rb:32 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of CanineHQ/canine@ba4ee3968d (2026-08-23). Data as JSON: /api/errors/9f4e4c4fdfae0d0a. Report an issue: GitHub.