Please share any images or screenshots, if relevant.
Please share any other relevant files that may be required (for example, logs).
Share all details about your problem, including any error messages you may have received.
Hi All, I am integrating an AIX direct connector. WHile trying to delete an account I am getting this exception
"<?xml version='1.0' encoding='UTF-8'?>
sailpoint.connector.InvalidResponseException: [ InvalidResponseException ]
[ Possible suggestions ] Make sure standalone command works with the UNIX terminal. The standalone command is - /usr/sbin/userdel "bbxxxxx"
[ Error details ] Command failed. Status: 1 , Output: Error 0x16 occurred.Warning: User (bbxxxxx) Keystore not removed.
"] "
The Application team says, that account is getting deleted, but their custom shell script returns this as a warning.
But issue is Sailpoint thinks it as an invalid response and does not delete it from sailpoint DB. After account aggregation only the account gets deleted from sailpoint.
Question is How can I capture this exception, so that I can supress this ?
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd"> <Rule created="1728911226897" id="0a2da00d92501ea681928b23b8114fcb" language="beanshell" modified="1730167808464" name="Pre-Provisioning - BWA_Unix-PRDU019" type="BeforeProvisioning"> <Description>An IdentityIQ server-side rule that is executed before the connector's provisioning method is called. This gives the customer the ability to customize or react to anything in the ProvisioningPlan BEFORE it is sent to the underlying connectors used in provisioning.
This rule will be called for any application found in a plan that also has a configured 'beforeProvisioningRule' configured.
The plan can be updated directly in the rule by reference and does not need to return the plan.</Description> <Signature> <Inputs> <Argument name="log" type="org.apache.commons.logging.Log"> <Description> The log object associated with the SailPointContext. </Description> </Argument> <Argument name="context" type="sailpoint.api.SailPointContext"> <Description> A sailpoint.api.SailPointContext object that can be used to query the database if necessary. </Description> </Argument> <Argument name="plan"> <Description> The ProvisioningPlan object on its way to the Connector. </Description> </Argument> <Argument name="application"> <Description> The application object that references this before/after script. </Description> </Argument> </Inputs> </Signature>
`
import sailpoint.object.ProvisioningPlan;
import sailpoint.object.ProvisioningPlan.AttributeRequest;
import sailpoint.object.ProvisioningPlan.Operation;
import sailpoint.tools.GeneralException;
import sailpoint.object.Identity;
import java.io.IOException;
import java.util.List;
import org.apache.log4j.Logger;
import sailpoint.object.Application;
import sailpoint.object.Custom;
import sailpoint.tools.Util;
import java.util.ArrayList;
import sailpoint.object.Link;
import sailpoint.object.Application;
import sailpoint.api.IdentityService;
import sailpoint.object.Attributes;
import sailpoint.object.ProvisioningPlan.AccountRequest;
import sailpoint.object.ProvisioningPlan.AttributeRequest;
import sailpoint.object.ProvisioningPlan.AccountRequest.Operation;
Boolean override_disable = true;
Boolean override_delete = true;
Boolean override_enable = true;
List attributeRequests=new ArrayList();
List newGroups=new ArrayList();
log.error("Project before Provisioning Error: " + plan.toXml() );
Custom c =new Custom();
String appName=application.getName();
public boolean checkIfLastRole(String empId,List groupstoBeRemoved){
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd"> <Rule created="1730091473859" id="0a2da00d929d14758192d17cdbc33cba" language="beanshell" modified="1730197003617" name="CBA_Rule_After-Provisioning - BWA_Unix-PRDU019" type="AfterProvisioning"> <Description>An IdentityIQ server-side rule that is executed after the connector's provisioning method is called. This gives the customer the ability to customize or react to anything in the ProvisioningPlan AFTER it has been sent out to the specific applications.
This rule will be called for any application found in a plan that also has a configured 'afterProvisioningRule' configured.</Description> <Signature> <Inputs> <Argument name="log" type="org.apache.commons.logging.Log"> <Description> The log object associated with the SailPointContext. </Description> </Argument> <Argument name="context" type="sailpoint.api.SailPointContext"> <Description> A sailpoint.api.SailPointContext object that can be used to query the database if necessary. </Description> </Argument> <Argument name="plan"> <Description> The ProvisioningPlan object on its way to the Connector. </Description> </Argument> <Argument name="application"> <Description> The application object that references this before/after script. </Description> </Argument> <Argument name="result"> <Description> The ProvisioningResult object returned by the connectors provision method. This can be null and in many cases the connector will not return a result and instead will annotate the plan's ProvisioningResult either at the plan or account level. </Description> </Argument> </Inputs> </Signature>
`import sailpoint.object.ProvisioningPlan;
import sailpoint.object.ProvisioningPlan.AttributeRequest;
import sailpoint.object.ProvisioningPlan.Operation;
import sailpoint.tools.GeneralException;
import sailpoint.object.Identity;
import java.io.IOException;
import java.util.List;
import org.apache.log4j.Logger;
import sailpoint.object.Application;
import sailpoint.object.Custom;
import sailpoint.tools.Util;
import java.util.ArrayList;
import sailpoint.object.Link;
import sailpoint.object.Application;
import sailpoint.api.IdentityService;
import sailpoint.object.Attributes;
import sailpoint.object.ProvisioningPlan.AccountRequest;
import sailpoint.object.ProvisioningPlan.AttributeRequest;
import sailpoint.object.ProvisioningPlan.AccountRequest.Operation;
import sailpoint.object.ProvisioningResult;
log.error("Project after Provisioning Error: " + plan.toXml() );`
The ProvisioningResult Object returns Null when the account is deleted and I get the exception.
sailpoint.connector.InvalidResponseException: [ InvalidResponseException ] [ Possible suggestions ] Make sure standalone command works with the UNIX terminal. The standalone command is - /usr/sbin/userdel “bbxxxxx” [ Error details ] Command failed. Status: 1 , Output: Error 0x16 occurred.Warning: User (bbxxxxx) Keystore not removed. "] "