Pending Provisioning not clearing

Which IIQ version are you inquiring about?

8.3p4

Share all details about your problem, including any error messages you may have received.

I have 337 pending provisioning transactions dating back to 10/2023, many triggered by an identity refresh. When looking at the info in a transaction I see Retries: 5 and a last retry date.

In my AD Application I have provisioningMaxRetries=5 and provisioningRetryThreshold=3.

I would have thought these transactions would have failed after 5 retries, but apparently they don’t.

In Global Settings > IdentityIQ Configuration > Miscellaneous, my provisioning log settings is set to 30 Days before provisioning transaction event deletion.

I would have thought that the log setting would have deleted those older pending items long ago.

What can I do to clear the old pending provisioning tx?

in this case you must do it manually via debug, with a rule or deleteing the record on DB directly.

Shouldn’t this have failed after the retries threshold was hit? The items keep getting added to. I have one from today.

this setting delete the closed transaction(failed or success).

Also, its better if you understand why those transaction still pending. For the oldest it could difficult discover the cause and about me, you can delete old the pending transaction most old than 30 days. Because its very probable those transaction are not usefull anc can create problems.

In IIQ a transaction could freeze in pending for some reason like upgrade, bad configuration etc…

If you continue to have transactions that do not close today, means the problem persist. Find and resolve the problem, before all.

you can the pending provisioning transactions and mark them failed using below code and going forward monitor it on daily basis and try to identify root cause.

Filter filter= Filter.and(Filter.eq("status","Pending"));
QueryOptions qos = new QueryOptions();
qos.addFilter(filter);
Iterator itrpt = context.search(ProvisioningTransaction.class,qos);
List pts = new ArrayList();
while(null!=itrpt @and itrpt.hasNext()){
	ProvisioningTransaction  pt = itrpt.next();
	if(pt !=null){
		pt.setStatus(ProvisioningTransaction.Status.Failed);
		pts.add(pt);
		context.saveObject(pt);
	}
}
1 Like

Hello @LarryG

We are also facing the same issue, using below devSk query we have cleared the pending provisioning transactions.

DevSk Query:
1)countObjects ProvisioningTransaction -filterString ‘created>@01-August-2024@ && created<@01-October-2024@ && status==“Pending” && operation==“Modify” && type==“auto”’

  1. iiqDelete ProvisioningTransaction -filterString ‘created>=@01-September-2024@ && created<=@03-September-2024@ && status==“Pending” && operation==“Modify” && type==“auto”’

Thanks Hemant. I used this with some modifications to create a task that can be run and send me an email of records changed to failed status.