4.18 Secondary Scheduler Operator, Run Once Duration Override Operator, and Kube Descheduler Operator CSVs in pending state
Environment
-
Secondary Scheduler Operator 1.4.2 with Red Hat OpenShift Container Platform (RHOCP) versions:
- 4.17
- 4.16
- 4.15
- 4.14
- 4.13
- 4.12
-
Kube Descheduler Operator 5.1.4 with Red Hat OpenShift Container Platform (RHOCP) versions:
- 4.17
- 4.16
- 4.15
- 4.14
- 4.13
- 4.12
-
Run Once Duration Override Operator 1.2.3 with Red Hat OpenShift Container Platform (RHOCP) versions:
- 4.16
- 4.15
- 4.14
- 4.13
Issue
After a catalog update, the Secondary Scheduler Operator (OSSO), Run Once Duration Override Operator (RODOO) and Kube Descheduler Operator (KDO) might have been attempted to be upgraded to versions from 4.18, which are not supported on OpenShift Container Platform (OCP) versions 4.17 and lower. The only exception is RODOO 1.2.3, which is compatible with OCP 4.17.
This article covers the specific remediation for OSSO, RODOO and OSSO. For the general issue affecting multiple operators, see Red Hat Operator has version higher than the cluster version.
Symptoms
Administrators can see that the 4.18 OSSO, RODOO or KDO operator versions were attempted to be installed. For example, for OSSO:
$ oc get csv -n openshift-secondary-scheduler-operator
NAME DISPLAY VERSION REPLACES PHASE
secondaryscheduleroperator.v1.3.2 Secondary Scheduler Operator for Red Hat OpenShift 1.3.2 secondaryscheduleroperator.v1.3.1 Replacing
secondaryscheduleroperator.v1.4.2 Secondary Scheduler Operator for Red Hat OpenShift 1.4.2 secondaryscheduleroperator.v1.3.2 Pending
$ oc describe csv -n openshift-secondary-scheduler-operator secondaryscheduleroperator.v1.4.2
...
Requirement Status:
Group: operators.coreos.com
Kind: ClusterServiceVersion
Message: CSV version requirement not met: minKubeVersion (1.31.0) > server version (1.30.14)
Name: secondaryscheduleroperator.v1.4.2
Status: PresentNotSatisfied
Version: v1alpha1
...
$ oc get installplan -n openshift-secondary-scheduler-operator
NAME CSV APPROVAL PHASE
install-fghij secondaryscheduleroperator.v1.3.2 Automatic Complete
install-klmno secondaryscheduleroperator.v1.4.2 Automatic Complete
...
Here, v1.3.2 corresponds to the OSSO version available in OCP 4.17. Depending on the current OCP version, the OSSO version might differ.
Both RODOO (v1.2.3) and KDO (v5.1.4) have a similar output. RODOO is installed under the openshift-run-once-duration-override-operator namespace. For example:
$ oc get csv -n openshift-run-once-duration-override-operator
$ oc get installplan -n openshift-run-once-duration-override-operator
And KDO is installed under the openshift-kube-descheduler-operator namespace. For example:
$ oc get csv -n openshift-kube-descheduler-operator namespace
$ oc get installplan -n openshift-kube-descheduler-operator namespace
Resolution
1. Preconditions & Safety Checks
Before initiating the clean-up process, the following conditions must be met:
-
The cluster service version (CSV) originating from OCP 4.18 is no longer available: to avoid repeating the same auto update step.
-
The latest CSV is in the
Pendingphase: to confirm the requirements in the status are not met due to minimal Kubernetes version mismatch. For example:CSV version requirement not met: minKubeVersion (1.31.0) > server version (1.30.14)
2. Clean Restoration (CLI Commands)
To remove traces of the invalid operator versions from OCP 4.18:
NOTE: The following steps are written for OSSO. To modify the procedure for KDO, use openshift-kube-descheduler-operator as the namespace. To modify the procedure for RODOO, use openshift-run-once-duration-override-operator as the namespace.
-
Check the current version of the CSV and installplan:
$ oc get csv -n openshift-secondary-scheduler-operator $ oc get installplan -n openshift-secondary-scheduler-operator -
Delete the installplan associated with the pending 1.4.2 CSV:
$ oc delete installplan installplan-XXX -n openshift-secondary-scheduler-operator installplan.operators.coreos.com "installplan-XXX" deleted -
Delete the CSV:
$ oc delete csv secondaryscheduleroperator.v1.4.2 -n openshift-secondary-scheduler-operator clusterserviceversion.operators.coreos.com "secondaryscheduleroperator.v1.4.2" deleted
4. Validation
To verify that the cleanup was successful:
NOTE: The following steps are written for OSSO. To modify the procedure for KDO, use openshift-kube-descheduler-operator as the namespace. To modify the procedure for RODOO, use openshift-run-once-duration-override-operator as the namespace.
-
Verify Operator Status:
The original pre-upgrade CSV is expected to stay in the
Replacingphase because OLM currently has no way of canceling a CSV in theReplacingphase without uninstalling the operator and re-installing it again. For example:$ oc get csv -n openshift-secondary-scheduler-operator NAME DISPLAY VERSION REPLACES PHASE secondaryscheduleroperator.v1.3.2 Secondary Scheduler Operator for Red Hat OpenShift 1.3.2 secondaryscheduleroperator.v1.2.0 Replacing -
Verify Pods:
$ oc get pods -n openshift-secondary-scheduler-operatorAll pods are expected to be running.
Root Cause
For several hours on February 3, 2026, Red Hat released 4.18 Red Hat Operators catalog content into 4.12-4.17 clusters.
Diagnostic Steps
For more information, including diagnostic steps, see Red Hat Operator has version higher than the cluster version.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.