I’m troubleshooting an issue in Workshop where a function occasionally receives the previous value of a Workshop Variable, resulting in incorrect calculations.
The flow is roughly:
Filter selection → Workshop Variable update → Function execution
The function itself appears to work correctly, but sometimes the input passed to the function is one interaction behind. For example:
-
Filter = user, I have defaulted to current user id in this case mine and I don’t have any data, I change the filter to a user who actual has data, all the object tables are loading and I have a button on click on which I have designed a slate module, instead of passing the object set or filter variables to slate, I pass in the filters to a function which in turn builds the input for slate,
I discovered now that I can use getmessage() and foundry functions and build slate -
So the users complain that they see previous filter data and re-opening solves the issue, but it is annoying and I checked the function fixed all of its fails, but still the issue persists and I was able to recreate it for once, so I inspected the logs and found the input to the function was wrong, it was the previous filter values, so the function is not the culprit but workshop is passing in the previous filters
Proof: In the background the object set that uses the same filter has loaded but the slate is blank, because its arguments has the previous filters data, so its not the slate, not the function but workshop passing wrong input (previous values).
My questions:
- Has anyone seen Workshop Variables lag behind when used as function inputs?
- Why does the issue gets resolved when they just reopen the section?
- Are there known event-ordering or state propagation issues that could cause a function to receive a stale value?
- Has anyone solved this by changing how values are passed (e.g., using Slate messaging /
getMessage()), or was there another root cause? - What is the best way to debug exactly where the stale value is introduced?
Appreciate any ideas, experiences, or even wild theories. At this point I’ll gladly investigate anything that sounds remotely plausible ![]()

