Opatch fails with Error :"The relation between 2 composites[DB BP,DB PSU] are invalid."

Problem:

$ pwd

/public/ORACLE_BIN/oracle_12c/12c_fixes/26925311

$ opatch apply -report

Oracle Interim Patch Installer version 12.2.0.1.7

Copyright (c) 2018, Oracle Corporation. All rights reserved.

Oracle Home : /oratsdb/product/12c/12.1.0.2/TSDB

Central Inventory : /oraoas/product/12c/oraInventory

from : /oratsdb/product/12c/12.1.0.2/TSDB/oraInst.loc

OPatch version : 12.2.0.1.7

OUI version : 12.1.0.2.0

Log file location : /oratsdb/product/12c/12.1.0.2/TSDB/cfgtoollogs/opatch/opatch2018-01-30_15-29-33PM_1.log

Verifying environment and performing prerequisite checks...

UtilSession failed: The relation between 2 composites[24340679,26925311] are invalid.

Please contact SE team to regenerate the patches.

Log file location: /oratsdb/product/12c/12.1.0.2/TSDB/cfgtoollogs/opatch/opatch2018-01-30_15-29-33PM_1.log

Cause:

$ opatch lspatches

24846605;OCW Interim patch for 24846605

24340679;DATABASE BUNDLE PATCH: 12.1.0.2.161018 (24340679)

OPatch succeeded.

Here we are trying to apply PSU (Patch 26925311: DATABASE PATCH SET UPDATE 12.1.0.2.180116). You cannot install DB PSU and ProActive BP in the same ORACLE_HOME. Here we can see Database Proactive Bundle Patch Install. If you install ProActive BP then you cannot subsequently install a letter DB PSU on top of that. You will need to choose the patching methods ProActive BP path or DB PSU path.

Solution:

You can switch patching methods. You can roll out the Proactive BP patches & apply the DB PSU, similarly if you choose Proactive BP methods but you haev DB PSU installed then you can roll back the DB PSU & apply the ProActive BP.

Now you might wonder which method is the best. It depends on the Release and Platform. In Oracle MOS 1962125.1 it explained clearly