not sure if this is an issue or not. As I am running some test, I came up with the situation where I have some workflow showing up as Running when viewed from within the webapp, yet when I click on the RunID to see details, their status is reported as Completed.
Workers do not seem to be getting them, so I assume they are indeed completed.
When a Temporal service is overloaded (which is very easy to achieve with the local docker-compose-based service) the visibility records used for list queries can be dropped. This leads to inconsistencies that you witness in the UI.
The good news is that we are actively working on fixing this behavior as part of the Kafka deprecation effort. I believe the next release is not going to have the issue.
You were correct to assume that this happens during a load test with several workers.
There are 2 categories of APIs from temporal backend, one with guarantee of strong consistency, one without.
describe used in the UI is backed by the APIs which guarantee strong consistency, the same group of APIs is also used during workflow execution.
list used in the UI is backed by the APIs which only guarantee eventual consistency.
Previously, when the server is overloaded, the sampling logic will kick in. We are working on removing the sampling logic in the next few releases.
NOTE: even after the deprecation of Kafka in the visibility APIs (eventual consistency APIs) & removal of sampling logic , there can still be delay, but the delay should be within few seconds.
Great, thanks for all the info.