Several of you mailed me already, and I tried to sort this out internally at first. We ask you to patch monthly, and it is amazing to see that some of you are ready to do this. It just gets a bit frustrating when you run into an issue such as this one where the CSPU on MS Windows conflicts with OJVM for 19.32.

Photo by Daniel Seßler on Unsplash
What happened?
This blog post is meant more to avoid frustration than to solve the issue. As of now, I am not sure if there is a MOS note available describing the problem. But since some of you either mailed me directly or commented on the blog, I wanted to save you and myself some time by putting together what I know so far.
You take the September CSPU (patch 39952167) for MS Windows for Oracle Database 19.32. Remember that MRPs are delivered only on Linux and only for 19c and 26ai. In all other cases, CSPUs are available instead with less content. As you know, on Windows, patching usually means exchanging the oracle.exe since not many of you have a Windows compiler on your database hosts. When you applied the OJVM for 19.32 (patch 39222882) and follow the README, you are going to run a precheck:
opatch prereq CheckConflictAgainstOHWithDetail -ph .\39952167
Unfortunately, this precheck will result in an error since there is a conflict. Or, there could be two conflicts.
One is with the OJVM, and the other one could be with a common MERGE patch:
Patch 39996979 - [WINDOWS] MERGE ON DATABASE RU 19.32.0.0.0 OF 39948860 39570655 39570736 39890510 39901922
You may end up with these conflicts:
[Sep 18, 2026 8:17:21 AM] [INFO] Prereq "checkConflictAgainstOHWithDetail" failed.
[Sep 18, 2026 8:17:21 AM] [INFO] Summary of Conflict Analysis:
Patches that can be applied now without any conflicts are :
39487170, 39661089, 39750798, 39761039, 39779336, 39854538, 39897693, 39996899
Following patches have conflicts. Please contact Oracle Support and get the merged patch of the patches :
39222882, 39996979
Conflicts/Supersets for each patch are:
Patch : 39996979
Conflict with 39222882
Conflict details:
E:\app\oracle\product\19.0.0\dbhome_1\rdbms\admin\oracle.sym
E:\app\oracle\product\19.0.0\dbhome_1\bin\oracle.exe
This reflects that the merge is conflicting as well as the CSPU with the OJVM (39222882 is the OJVM Bundle). OJVM adds about 200 fixes on top.
What could you do?
When you deinstall the OJVM bundle, you can install the September CSPU – but you can’t then install the OJVM again. So, this is clearly not a solution. Or, you could skip the September CSPU with some important security fixes in it – but this is not the intention for asking you to patch monthly because of the important security content we ship with the CSPU and the MRP.
Hence, I guess, neither one is a valid and useful option for you.
There are basically two solutions:
- Apply the merge patch 40082559 merging OJVM and CSPU from September on MS Windows. It is available since Sept 29 on MOS.
- Workaround may not be needed anymore – I leave it for completeness. You can try and follow Angela’s advice on the blog and install these fixes with “napply”:
opatch napply -id 39487170, 39897693, 39761039, 39996899
This way you skip the conflicting patch while you keep the OJVM. But actually, since I have no Windows environment. Therefore, I am not sure whether this will help you (feedback welcome). Generally, I am not a fan of applying partial content. There will be a blog post about this soon as well as this may lead to other problems later..
Quick update as of Sept 29:
Erwin (thank you!!) who raised this issue to me confirmed that the merge patch 40082559 could be applied successfully.
Further Links and Information
- Why you can’t do n-1 anymore
- Clarifications about CPUs, CSPUs, MRPs and RUs
- More clarifications about CPUs, CSPUs, MRPs, RUs
- Patch your database against AI-enabled cybersecurity threats
- Accelerating Vulnerability Detection and Response at Oracle (3 min read – April 29, 2026)
- Take Action Today: Protect Your Oracle Database Against AI-Enabled Cybersecurity Threats (1 min read – April 30, 2026)
- (KB188772) Oracle Database 19c and Oracle AI Database 26ai Important Recommended One-off Patches
–Mike
Hi Mike,
if a workaround is to use
opatch napply -id 39487170, 39897693, 39761039, 39996899
where does the list of patches come from? This leaves out three (?) patches from the CPSU that did not conflict with OJVM 19.32 and of course the one that conflicts. Since you already mentionened in another post that there is no fine grained Patch ID to CVE documentation this leaves some question marks. Are really the most severe bugs adressed when I leave out some of the subpatches to avoid a conflict? It seems to me that neither developent at Oracle nor we from the customer side are prepared for monthly SRs for Merge requests. Before I get the merged patch we are already close to the next MRP/CPSU/RU.
Hi Daniel,
I am not a fan of applying granular portions of a bundle. To me, this leads to other problems.
And methodically, it sounds at least questionable to apply only a part of the bundle, especially since CSPUs are labeled to contain security fixes only.
Cheers,
Mike
HI Mike, that was what I was implying. I did not really think that the suggested workaround is a good idea since it leaves out some patches. However, some security patches are better than no security patches. In this case it probably is a lesser evil to keep the OJVM patch and leave out half of the CPSU patches.
Best regards,
Daniel
Hi Mike,
thank you for highlighting the Windows CPSU/OJVM conflict with 19.32.
Could this issue also cause a deinstallation failure such as the following?
Our custom Gold Image is based on 19.3 and includes DB RU 19.32, OJVM RU 19.32, the 19.32 Data Pump Bundle Patch, and current OPatch. On Windows Server 2022, even this non-destructive command fails:
“`bat
deinstall.bat -checkonly
“`
“`text
java.lang.UnsatisfiedLinkError:
…\deinstall…\bin\oranjni19.dll:
The specified procedure could not be found
ERROR: oracle.net.common.NetGetEnv.get(Ljava/lang/String;)Ljava/lang/String;
“`
The same Gold Image build/deployment process works with earlier RUs; the problem appears only with the 19.32 patch stack.
Oracle Support has so far focused mainly on our VMware environment rather than reproducing the documented 19.32 Windows patch combination, so any insight would be greatly appreciated.
Do you know whether the CPSU/OJVM conflict could lead to this `oranjni19.dll` / `NetGetEnv` error during deinstallation? If so, is there a supported Windows patch combination or workaround?
Thanks!
Hi Roland,
I doubt that this is related here. To me, this looks more like an issue with the “deinstall” program.
Personally, I would assume that – when the apply works fine – the “detach” should work as well.
Btw, did you try to detach the home from the inventory?
But I know, this is way more tricky on Windows than it is on Unix due to services and registry keys and dlls stored “somewhere”.
Thanks,
Mike
Hi Mike,
detach works, but deinstall not.
After rolling back the RU, deinstall also works.
Also patching with the latest (53) opatch makes no difference.
I wonder that nobody else has this issue on Windows. It’s reproducable to me with a fresh install of 19.3+OPatch53+RU19.32.
Best Regards,
Roland
Thanks Roland – let’s see if the SR will lead to anything.
Mike
Hi Roland!
We are experiencing the same “UnsatisfiedLinkError” issue during uninstallation on Windows systems.
Unfortunately, we have not yet found a better or faster solution than rolling back the patches before starting the uninstallation process.
See comment below: https://mikedietrichde.com/2026/09/28/cpsu-on-ms-windows-conflicts-with-ojvm-for-19-32/#comment-43491
Hi Mike and Roland!
Thanks for describing and mentioning this issue.
We are experiencing exactly the same issue with the “UnsatisfiedLinkError” during uninstallation on Windows systems.
For Oracle Support, we have reproduced the issue not only on Windows server operating systems but also on Windows 11.
One possible workaround we have found is to roll back the patches using OPatch and only then carry out the uninstallation. However, this isn’t really the route we want to take, particularly as the rollback takes a very long time and significantly increases the overall duration of the uninstallation. Furthermore, we would then also have to include the relatively large .patch_storage folder, which we always exclude because we always replace the entire Oracle Home with a Gold Image during an update.
And it seems that we have both established a very similar way of working and approach to Gold Images on Windows operating systems. We, too, work in such a way that, based on 19.3, we always apply the latest Windows bundle patches, OJVM patch, Dumpump patch, JDK patch, etc., before creating a new Gold Image. We integrate this Gold Image into our software so that we can systematically update our customers’ systems to the very latest version.
@Roland: It might well be very useful to have a brief exchange of experiences here in general, and we could perhaps learn from one another here and there.
Oracle Support has already provided us with a bug ID, and I will also share the service request (SR 4-0003430943) if this might be of help to you.
Bug 39889302 – DEINSTALL FAILS WITH ORACLE.NET.COMMON.NETGETENV.GET(LJAVA/LANG/STRING;)LJAVA/LANG/STRING AFTER APPLYING 19.32 ON WINDOWS
I have also already checked what exactly has changed in this Bundle Patch 19.32 compared to the previous Bundle Patch, but I have not been able to identify any differences that might be relevant here.
It would also be very helpful for us if there were a different and quicker workaround than rolling back the patches before uninstalling them. It would also be very interesting to know whether a possible fix might still make it into the October 2026 patches, or whether we’ll probably have to wait until January of next year anyway – though more likely mid- to late February 2027, as this concerns the Windows patches.
We’d really appreciate some feedback from you. Thank you!
Thank you, Martin!
I love when customers help customers solving these things. And on the side, I learn something in addition.
Mike
Thanks for your response, Mike!
Any more detailed insight into the following bug, a potential faster workaround (i.e. one that doesn’t involve rolling back the patches) and any timeline would be much appreciated …
SR 4-0003430943
Bug 39889302 – DEINSTALL FAILS WITH ORACLE.NET.COMMON.NETGETENV.GET(LJAVA/LANG/STRING;)LJAVA/LANG/STRING AFTER APPLYING 19.32 ON WINDOWS
Quick update: I have now isolated the issue further.
The failure reproduces with only:
1. Oracle Database 19.3 base image
2. updated OPatch
3. Database RU 19.32
No OJVM patch and no Data Pump Bundle Patch are required. `deinstall.bat -checkonly` already fails with the same `oranjni19.dll` / `NetGetEnv.get` error.
I tested with both OPatch 52 and 53; both show the same behavior. Rolling back RU 19.32 makes deinstallation work again.
This confirms that RU 19.32 itself triggers the issue, independently of OJVM, Data Pump, VMware, and the tested OPatch versions. Oracle Support has moved the SR to the Install/Deinstall team and is checking Bug 39889302.
Thanks again for sharing the bug ID and your findings.
Thanks for the update!”
Cheers,
Mike
Hi Mike,
we have the same issue with Oracle Text Mandatory and Recommended Patches for 12c and Higher Databases KB104479.
The August and September CSPU for Solaris and the MRP for Linux are conflicting with them both.
All the extra patch bundles for OGG, Oracle Text, Datapump, OJVM, JDK and so on plus the Recommended Patches and Known Issues for regressions make it a real challenge to apply the latest RU.
Best regards
Sven
Hi Sven,
I think there is a general challenge with one-offs on the system already.
As soon as one-off patches are in place, regardless of whether they belong to TEXT or just the core, there is always a chance that it will conflict with the MRP or CSPU as soon as one of the fixes is included there, or as soon as a module/lib will be tackled which is part of the other fixes or bundle as well.
In fact, this is not different from any other one off. If you have 2 optimizer fixes in place, and you add a 3rd one, you have a good chance for a conflict.
This is when you need a merge patch to combine the 3 into 1.
I think, the challenge now is that most people want the MRPs / CSPUs, or are required to apply them – and this gives a significant potential for conflicts since in environments like yours you have already one-offs and/or merges and/or bundles in place.
Cheers,
Mike
By the way, the second and third letters are swapped in the headline ‘CPSU on MS Windows conflicts with OJVM for 19.32’ and in several other places in the article.
It should be “CSPU” (Critical Security Patch Update), not “CPSU”. 😉
Thanks Martin – I corrected it where possible (can’t do it in the picture and in the link since it would break the link).
My fingers clearly crossed-over when typing it. Too many Cs and Ss and Ps … 🙂
Thanks
Mike
Starting with 19.32 deinstall.bat hasn’t worked. Also, on Windows 2022, autoupgrade can download and create a new home, but fails to create a gold image.
Errors in database [create_home_1]
Stage [CREATE_GOLD_IMAGE]
Operation [STOPPED]
Status [ERROR]
Info [Exception: PATCH101
Err message: AutoUpgradePatchingException [AutoUpgrade Patching failed to create the gold image of the source ORACLE_HOME C:\oracle\product\19.32.202609\dbhome_1]
oracle.patch.utils.errors.PATCH101:
at oracle.patch.dispatcher.actions.CreateGoldImage.executePatchStage(CreateGoldImage.java:171)
at oracle.patch.dispatcher.def.PatchJobAction.executeStage(PatchJobAction.java:71)
at oracle.commons.dispatcher.JobStage.executeStage(JobStage.java:80)
at oracle.patch.dispatcher.def.PatchJobStage.executeStage(PatchJobStage.java:69)
at oracle.commons.dispatcher.RunJobDefinition.runJob(RunJobDefinition.java:144)
at oracle.patch.dispatcher.def.RunAutoPatchJob.runJob(RunAutoPatchJob.java:61)
at oracle.patch.dispatcher.AutoPatchJobThread.run_(AutoPatchJobThread.java:119)
at oracle.patch.dispatcher.AutoPatchJobThread.run(AutoPatchJobThread.java:108)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
]
I found this site was on the right track for gold image creation problems. I worked around deinstall.bat not working by coding a Powershell script to modify central inventory and registry settings.
https://gavinsoorma.com.au/knowledge-base/oracle-database-19c-software-cloning-using-gold-image-windows/
setup.exe -J-XX:CompileCommand=exclude,java/lang/StringBuilder.append -J-XX:CompileCommand=exclude,java/lang/AbstractStringBuilder.append
Hi David,
do you have opened an SR?
If not, I will need the logs – please open an SR, upload the logs:
java -jar autoupgrade.jar -config yourconf.cfg -zip
You can send me the SR number then.
Thanks
Mike
Hi Mike, the patch 40082559 – DATABASE CSPU 19.32.0.0.260915 (WITH OJVM) is available!
I just downloaded it using autoupgrade.
Michael
Thanks Michael!
Mike