This post is also available in:
You run a gold image deploy through Fleet Maintenance and hit the error below on the very first attempt — no previous deploy was ever done on that target:
Processing target "has_orcltest.localhost"...
Checking image subscription...
Check image subscription passed.
Checking if target is in non-default location inside the Oracle Home...
Oracle home is already provisioned for the target [has_orcltest.localhost] for given gold image version at location '/u01/app/19.21.0.0/grid'.
ERROR: Operation could not be completed
Verb performOperation unsuccessfulThe job fails before any action is taken on the server. No files are copied, no patch is applied.
💡 Real-world context
This error showed up on the first deploy attempt of a Grid Infrastructure gold image (19.25) via Fleet Maintenance. No previous deploy had been executed on that target — which makes the message particularly misleading.
Why it happens
Fleet Maintenance keeps an internal inventory inside OEM that records the association between targets and Oracle Homes provisioned through gold images. This record can exist even without a successfully completed deploy — a previous attempt, an incomplete setup, or a residual state left by an OEM Agent configuration operation is enough.
When the process detects that the Oracle Home path (/u01/app/19.21.0.0/grid) is already registered for that target, it treats the operation as an attempt to provision a duplicate home and blocks it as a safety measure.
The IS_REDEPLOY=true parameter explicitly signals to Fleet Maintenance that the intent is to overwrite that record and proceed with the deploy.
Solution
Original configuration file used in the failing attempt:
[oracle@orcl config_files]$ cat deploy_has_image_1925.txt
NEW_ORACLE_HOME_LIST=/u01/app/19.25.0.0/grid
dispatchLoc=/u01/app/temp/dispatchloc
workingDir=/u01Add the IS_REDEPLOY=true parameter to the file:
[oracle@orcl config_files]$ cat deploy_has_image_1925.txt
NEW_ORACLE_HOME_LIST=/u01/app/19.25.0.0/grid
dispatchLoc=/u01/app/temp/dispatchloc
workingDir=/u01
IS_REDEPLOY=true⚠️ Warning: Double-check the target name and Oracle Home path before running. A re-deploy against the wrong target can cause inconsistencies in the Fleet Maintenance inventory.
Run the command again:
emcli db_software_maintenance -performOperation \
-name="Deploy GI" \
-purpose='DEPLOY_SIHA_SOFTWARE' \
-target_type='has' \
-target_list=has_orcltest.localhost \
-normal_credential="ORACLE_VMS:SYSMAN" \
-privilege_credential="SUDOORACLE:SYSMAN" \
-input_file="data:/dados/PROJETOS/patch_oem/config_files/deploy_has_image_1925.txt"Expected output:
Processing target "has_orcltest.localhost"...
Checking image subscription...
Check image subscription passed.
Checking if target is in non-default location inside the Oracle Home...
Oracle home target list is E8E5FBCFA382E70C8CF3CE4B02215041
Operation 'Deploy GI' created successfully.
Deploy Grid home software for has_orcltest.localhost can be monitored using:
EMCLI:
emcli get_instance_status -exec=2CBE7D3476457BD6E0632404080AD840 -details -xml
Browser:
https://<EM Host>:<EM Port>/em/faces/core-jobs-procedureExecutionTracking?executionGUID=2CBE7D3476457BD6E0632404080AD840
Verb performOperation completed successfullyPost-deploy validation
Monitor the job using the command returned in the output:
emcli get_instance_status \
-exec=<EXECUTION_GUID> \
-details \
-xmlReplace with the value shown in the emcli get_instance_status line of the previous output. You can also track progress through the OEM console at the URL displayed.
About the ATTACH_HOME parameter
MOS Doc ID 3008380.1 documents two parameters for similar situations: IS_REDEPLOY=true and ATTACH_HOME. This post covers IS_REDEPLOY=true as it is the parameter validated in this scenario. For cases involving attaching an existing Oracle Home, refer to the Doc ID directly.
References
- Oracle Support — Doc ID 3008380.1: Fleet: How To Use IS_REDEPLOY & ATTACH_HOME Parameters For Re-Deploy/Attach Oracle Home
- Oracle Fleet Maintenance — Oracle Enterprise Manager 13c Documentation
