I am seeing this error '2023/12/27 10:56:45.329|SLManagedScripting.exe|ManagedInterop|ERR|-1|14|NotifyProtocol with 168 failed. 0x80040221' be thrown on element start and I am not sure what is causing it. As I understand it, 168 is NT_GET_INDEXES and the error code signifies that invalid is being passed. However, the problem is that i can't find the call anywhere in the driver so I am very confused as to what is causing this log to appear. Any information will be greatly appreciated.
Hi Julian, NotifyProtocol 168 is executed behind the scenes when the keys of a table are being retrieved. Probably there is somewhere a GetKeys() call with a non-existing table ID. ClearAllKeys() is another method that executes that notify.
Hi Julian, I’m not aware of other methods that use this notify. What you could is enabling development logging. That could help to pinpoint where exactly (which QAction/trigger) causes the problem. Besides that I would propose to add some additional logging.
Tom, I was able to find what was causing it with the development logging. it was a protocol.FillArray method where the list of rows being passed was empty. i added an additional check to only call the method when the count is greater than zero. Thank you for the help!
Hi Julian,
Could you confirm which FillArray method you are using?
There is a valid use case for passing an empty list of rows to a FillArray using SaveOption.Full and that is to clear all entries of the table.
Be aware of changing the code if there is no other mechanism to clear such rows.
Thank you Tom, that helps a lot. After going through all GetKeys methods in the driver, I saw that they all use tables that exist in the driver that are displayed. Do you know of any other calls that might execute the notify?