I’m encountering an error and can’t find the solution, i’ve searched the forum but nothing turned up.
Error:
10:19:01.4072 Error {“message”:“Set transaction status : The given key was not present in the dictionary.”,“level”:“Error”,“timeStamp”:“2017-12-12T10:19:01.4072202+01:00”,“windowsIdentity”:“MUTWORLD\F501RPA01”,“processName”:“POT_AS400_Productie”,“processVersion”:“1.0.6549.29376”,“fileName”:“Main”,“jobId”:“feedd65f-25d2-4934-9c95-bac54958a327”,“robotName”:“S501WP1RPARDS01 01”}
This error occurs when trying to access a dictionary using a key that does not exist.
A dictionary is a special form of array arranged by Keys and Values. Every key must be unique and you then use that key to access it’s corresponding value.
e.g. a dictionary may look like dictionary = {A:“Apple”,B:“Orange”,C:“Pear”} If you ask for the value dictonary(A) you will get the value Apple.
if you have a process that doesn’t Always have the required key you can use the Key Exists activity to check before you try and access it.
Or use a try catch to catch the key does not exist exception and handle the error that way.
In my case this error occured, when I’ve tried to set transaction status two times for the same transaction, e.g. set “Success”, do some things and then again set “Success”.
You should probably check, if the Robot is not processing the same transaction two times or maybe You double setting status somewhere.
@Florent_Salendres , I think that transactions just can’t be nested. The same is when You use “Add queue item”. If You set up them in order like on my screenshot it works.
It can mean a great number of things. But to define the error message, the queueitem/transactionitem you are processing is read and the data is stored in a dictionary.
So this message says that the key is not found in the queue item value. So make sure you check the keys you are getting from you transaction item is correct (case sensitive).
Another reason could be that you try setting the transaction status twice for the same item.
In my opinion, there is clearly no explanation here which parameters were not found. Everyone who learns to program nowadays also knows that meaningful “speaking” error messages are very valuable. So, the called function is looking for a parameter - note: the name was passed on - and cannot find it. So the error message should also be able to reflect the name of the parameter and not just a “not found”. Why doesn’t she do that? This is one of the things that I have found fault with UiPath functionality for years.
Here enlarged again and clicked on the magnifying glass in the 2nd line
Now I would have expected that at least the name of the activating activity would be passed on. But that’s exactly what doesn’t happen!
The whole action above was wrapped in “Try Catch” and in the catch part you can see that the previous data is no longer available in the exception.
But the presence would be of fundamental importance and helpful, since troubleshooting would then be considerably easier.
Kind regards