Open longquanzheng opened 2 years ago
It will throw error like:
java.lang.IllegalArgumentException: No value found for mutableSideEffectId=17eb87a3-bbd5-3310-b2c5-48ac24000057, during replay it usually indicates a different workflow runId than the original one
at com.uber.cadence.internal.sync.SyncDecisionContext.mutableSideEffect(SyncDecisionContext.java:557)
at com.uber.cadence.internal.sync.WorkflowInternal.mutableSideEffect(WorkflowInternal.java:277)
at com.uber.cadence.internal.sync.WorkflowRetryerInternal.retryAsync(WorkflowRetryerInternal.java:106)
at com.uber.cadence.internal.sync.WorkflowRetryerInternal.retryAsync(WorkflowRetryerInternal.java:95)
at com.uber.cadence.internal.sync.SyncDecisionContext.executeActivity(SyncDecisionContext.java:136)
at com.uber.cadence.internal.sync.ActivityStubImpl.executeAsync(ActivityStubImpl.java:44)
at com.uber.cadence.internal.sync.ActivityStubBase.execute(ActivityStubBase.java:36)
at com.uber.cadence.internal.sync.ActivityStubImpl.execute(ActivityStubImpl.java:26)
at com.uber.cadence.internal.sync.ActivityInvocationHandler.lambda$getActivityFunc$0(ActivityInvocationHandler.java:51)
at com.uber.cadence.internal.sync.ActivityInvocationHandlerBase.invoke(ActivityInvocationHandlerBase.java:76)
at com.sun.proxy.$Proxy164.getEncryptedId(Unknown Source)
at com.indeed.flex.workflow.workflows.sainsbury.compliance.SainsburyImpl.start(SainsburyImpl.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory$POJOWorkflowImplementation.execute(POJOWorkflowImplementationFactory.java:246)
at com.uber.cadence.internal.sync.WorkflowRunnable.run(WorkflowRunnable.java:47)
at com.uber.cadence.internal.sync.CancellationScopeImpl.run(CancellationScopeImpl.java:102)
at com.uber.cadence.internal.sync.WorkflowThreadImpl$RunnableWrapper.run(WorkflowThreadImpl.java:99)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
https://github.com/uber/cadence-java-client/blob/dca853aaa047071caab8b16a345474aa3708d162/src/main/java/com/uber/cadence/internal/sync/SyncDecisionContext.java#L134
Related to https://github.com/uber/cadence-java-client/issues/654
During replay, if an activity doesn't not exist in the history, the replay would run into this branch and throw some weird error messages.