From 1b2c2b1a3de87bd05a182f08ac5017622013c295 Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Fri, 2 Oct 2026 04:01:01 +0100 Subject: [PATCH] fix(controller): detect existing job with AlreadyExists The job creation check matched the substring 'exists' in the error text. It now uses apierrors.IsAlreadyExists, so unrelated errors no longer match. --- controllers/crd_scrapper.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/controllers/crd_scrapper.go b/controllers/crd_scrapper.go index 633f8fc..2b1a38a 100644 --- a/controllers/crd_scrapper.go +++ b/controllers/crd_scrapper.go @@ -1,11 +1,10 @@ package controllers import ( - "strings" - "github.com/lukaszraczylo/pandati" kbatch "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" jobsmanagerv1beta1 "raczylo.com/jobs-manager-operator/api/v1beta1" @@ -203,7 +202,7 @@ func (cp *connPackage) runPendingJobs() { err := cp.executeJob(job, group) if err != nil { cp.logger.Error(err, "Unable to execute job", "job", job.Name, "group", group.Name) - if !strings.Contains(err.Error(), "exists") { + if !apierrors.IsAlreadyExists(err) { job.Status = ExecutionStatusFailed group.Status = ExecutionStatusFailed cp.updateDependentJobs(job.Name, ExecutionStatusFailed)