Showing results for 
Search instead for 
Did you mean: 
Walkthrough Wednesdays

UCCX Select Resouce Contact Inactive Exception

Hi All,

I have a question regarding UCCX scripting :

When a call is transfered to an agent via the Select Resource Step in an UCCX script, does this trigger a "Contact Inactive Exception" at the script level.

Best Regards

Hatem Hamdi

Deepak Rawat
Cisco Employee

The script will not generate the Contact Inactive Exception at the script level whenever the call will be transferred successfully to the agent. You can also verify this by collecting Cisco Unified CCX Engine also known as MIVR logs using RTMT and look for something like below

Execute step of Task 4000000001

Below is a great post by Anthony to view the executed scripts via CLI in realtime:



Hi Rawat,

This is the behavior I was expecting but I have a script which is poving me the opposite. I am handling Exceptions using the "On Exception Goto" Step.

Whenever a call is properly handed to agent by "Select Resource" the Exception is thrown and the ractuve debug jumps to the Exception handling label.

I am very confused here.

Best Regards,

Hatem Hamdi

Hatem, can you attach the copy of script here. Let me review it in my lab and see the reason why it is doing this.




Old thread, but same problem here.

Did you get any advances on your side?

I saw weird behavior in some of my scripts related to inactive contact exceptions. I can't say if it's related to anything else in this thread, but here's what I found:

There was an "on exception goto" step for the contact inactive exception. It terminated the contact and ended the script. So far, so good, but I found in the logs that I was getting hundreds of max executed steps exceeded errors every day.

What I think was happening was that the terminate contact step was re-triggering the exception, which sent the script into an infinite loop. Well, it would have been infinite if not for the max execution step limit.

So before the terminate contact step, I inserted a clear exception step. I stopped getting max executed step errors.

I don't believe those excess steps or errors were affecting any calls, but I'd rather not have that extra load on the server, and all that extra flotsam in my logs.

Yes, just after replying on the forum I got it as you said. 

I just removed my terminate contact from the flow (not from the script). 


This is pretty common for me to see.

On Exception ContactInactiveException Goto @@@ END
Accept (--Triggering Contact--)
Select Resource (--Triggering Contact--, CSQ)
Goto @@@ END
Delay Forever and Ever @@@ END: Terminate (--Triggering Contact--) End

So when the call gets connected to the Agent, and the script goes to the @@@ END label, the Terminate step throws a Contact Inactive Exception, which sends the script back to the @@@ END label, and thus repeats until the Max Executed Steps exceeds.

So, to answer the original question, the completion of the transfer to the Agent does not throw the ContactInactiveException, however, the very first step requiring a Contact, will throw the exception.  Therefore, in most cases, the best option after a successful transfer to an Agent, is simply the End step itself.


On Exception ContactInactiveException Goto End of Script
Accept (--Triggering Contact--)
Select Resource (--Triggering Contact--, CSQ)
Goto End of Script
Delay Forever and Ever Terminate and End: Terminate (--Triggering Contact--) End of Script: End

Does on exception go to for Contact inactive apply to an abandoned call in the queue?  We want to see those true abandoned calls, but not hang ups on main menu before select resource step.  If so should we put clear exception...would it even make it to the clear exception if the go to is to the "end" step?

But if a caller hangs up in the menu, prior to being sent to queue, that call wont even show up in CSQ reports, right?

If you are worried about the abandon metrics all together, then I suggest you create a boolean variable called something like is_queued, which starts off as false, and gets set to true at the onset of being queued.

Then with your ContactInactiveException Goto area, you can say:

If (is_queued == false)
/* They never made it to queue, so mark them as handled */
Set Contact Info (Handled)
/* They made it to the queue, so let it be marked as abandoned */
Content for Community-Ad

Spotlight Awards 2021