I am having an issue in my on-prem environment where if I create a list, it is getting deleted overnight. I am using the List Update activity and creating own table for the list so that I can store additional columns as snapshot. It is working fine, but on the next day when I try to use the list, I am getting and error and figured out that the associated grp table (example: grp165019102) is deleted.
I figured out that the list is getting deleted after 4 AM and obviously pointer shifted to Cleanup Workflow. After I stopped the cleanup workflow, in UAT, the lists are not getting deleted.
I initially thought it might be due to the list not having the expiration date. So I gave the expiration date as 6 months from creation date, but still it is getting deleted.
Any idea what to check?
Also in another lower environment even after stopping the cleanup workflow, I see that the cleanup is somehow running at 4AM. I checked the Cleanup workflow workflow log of the cleanup workflow and also the monitor > runwf@instanceName and don't see any workflow kicking off at 4AM. But my sql server profiler is capturing a log as "nlserver runwf cleanup" as application name. So the cleanup script is somehow kicking from somewhere. Any idea how to track it down?
Note, I ran nlserver cleanup script as below manually after creating the list, but it is not deleted that time and I am getting logs like 0 list deleted and so
The issue was, someone created FDA connection from a different environment to this environment. When the nightly cleanup workflow runs, it deletes the table for the list. Here is more details.
We had UAT environment connecting to SIT via FDA (probably someone did some test, god knows when, especially when the environments are 7+ yesrs old). So when UAT cleanup is running, it is connecting to SIT via FDA. That connection is deleting the list related table. Similarly all other lower environments are interconnected via some other environment's FDA and it was happening to all lower environments.
Please may you display and check the @expirationDate value (SQL field tsExpiration) of your List (recipient group or other type of list)? The easiest is to add expirationDate field as a column when you display the lists in the User Interface.
Usually by default expirationDate is set to be empty, and you can set it to a specific date through the UI. By using the List update activity in the workflow, you don't have to define it usually, but perhaps something has been done for this somewhere.
As you've discovered, cleanup is an nlserver command- part of the binary, i.e. not directly read. The command is run by technical workflow 'cleanup', with scheduler at 4AM by default, prob just a safe time after 2AM reboot. The workflow logs its actions, so you can see how many it deleted when.
What you're doing is pretty good for debugging, tracing the sql calls it makes. From here just run the same sql and see what it picks up, and why.