Using multiusers work and queues. working with thethreadsIn an environment that uses multiple UserWork and Propagation queues, it is possible to generate a situation where two different Queue threads are compiling the same workflow expression concurrently. When a workflow expression is executed for the first time, the codebase\wt\workflow\expr directory is checked for an already compiled class file. If one is not found the Queue thread creates a .java file, compiles this file into the codebase\wt\workflow\expr directory, then removing the .java file. The "Bad Workflow Expression" message occurs when two threads concurrently try and execute the same workflow expression. The first thread completes compilation the .java file there by removing it. However the second thread that was depending on the deleted .java file cannot locate it which results in the a failed queue entry with the error "Bad Workflow Expression" as the message. This error should be very rare to the point of almost being non-existent for most installations. However regularly deleting the codebase\wt\workflow\expr directory will greatly improve the chance of the problem occurring. Deleting this directory removes all cached expression class files requiring all workflow expressions to be recompiled there by greatly improving the chance of the error. Setting the wt.workflow.definer.deleteExpressionFiles=false, which will maintains all .java files in the $WT_HOME\temp directory.