diff --git a/internal/scheduler/job/repository_run.go b/internal/scheduler/job/repository_run.go index b5c0eec419..a3c0803e2c 100644 --- a/internal/scheduler/job/repository_run.go +++ b/internal/scheduler/job/repository_run.go @@ -93,7 +93,7 @@ func (r *Repository) UpdateProgress(ctx context.Context, runId string, completed // Failed to update run, either it does not exist or was in an invalid state if err = r.LookupById(ctx, run); err != nil { if errors.IsNotFoundError(err) { - return errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("job run %q does not exist", runId))) + return errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("job run %q does not exist", runId)), errors.WithoutEvent()) } return errors.Wrap(ctx, err, op) } diff --git a/internal/scheduler/scheduler.go b/internal/scheduler/scheduler.go index 66592fe7b8..5969598a5f 100644 --- a/internal/scheduler/scheduler.go +++ b/internal/scheduler/scheduler.go @@ -332,8 +332,8 @@ func (s *Scheduler) updateRunningJobProgress(ctx context.Context, j *runningJob) } status := j.status() _, err = repo.UpdateProgress(ctx, j.runId, status.Completed, status.Total, status.Retries) - if errors.Match(errors.T(errors.InvalidJobRunState), err) { - // Job has been persisted with a final run status, cancel job context to trigger early exit. + if errors.Match(errors.T(errors.InvalidJobRunState), err) || errors.IsNotFoundError(err) { + // Job has been persisted with a final run status or deleted, cancel job context to trigger early exit. j.cancelCtx() return nil }