Greetings. Alas, need to ask a question.
Imagine two workflows, no parent/child relationship, A and B. B acts as a queue. A calls B with a signal to enqueue a task (and setting doNotCompleteOnReturn). When B has processed the task it does a callback to to A using the ActivityCompletionClient, passing the token issued from A’s activity.
However, when B’s activity tries to complete the activity on A:  it’s throwing an ActivityNotExistsException. But, A is still running (i.e. it hasn’t timed out yet). The time elapsed between A enqueuing the task, and B attempting to callback/complete the activity is ~19m.
We cracked the token and the ActivityId, RunId, etc., look correct.
I’ve tried with simple examples (though using Postgres on docker, same versions of Temporal & SDK) and it works as expected. Which makes this very strange.
Note - prior to upgrading the server to Temporal 1.20.2, this worked great. We were on 1.15.2.
Using:
- Temporal Java SDK 1.19.1
- Temporal Server 1.20.2
- AWS RDS MySQL 5.7.37
Any ideas? Thank you!
Sean
PS. I am aware the “Workflow Update (alpha)” exists in V1.20.0+. My understanding is that eventually we can switch to that pattern to manage queues.