Grpc error unmarshalling request: duration: &types.Duration{Seconds: 25864689705, Nanos: 448000000, } is out of range for time.Duration

Hi

I see this excpetion in stack trace a lot now and repeately.

  2021-02-13 10:58:22.479 ERROR 1 --- [01-cloud": 1288] i.t.internal.worker.PollerOptions        : 
  uncaught exception

java.lang.RuntimeException: Failure processing workflow task. WorkflowId=workflow122333, RunId=f6fda4e4-e839-4118-9b79-f62b2fb1efcb, Attempt=1869
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:350) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:280) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:79) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_261]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_261]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_261]
Caused by: io.temporal.internal.worker.UnableToAcquireLockException: Workflow lock for the run id hasn't been released by one of previous execution attempts, consider increasing workflow task timeout.
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:306) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:280) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:73) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        ... 3 common frames omitted

2021-02-13 10:58:25.388 ERROR 1 --- [01-cloud": 1282] i.t.internal.worker.PollerOptions        : uncaught exception

java.lang.RuntimeException: Failure processing workflow task. WorkflowId=workflow122333, RunId=f6fda4e4-e839-4118-9b79-f62b2fb1efcb, Attempt=1863
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:350) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.wrapFailure(WorkflowWorker.java:280) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:79) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_261]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_261]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_261]
Caused by: io.grpc.StatusRuntimeException: INTERNAL: grpc: error unmarshalling request: duration: &types.Duration{Seconds: 25864689705,
Nanos: 448000000,
} is out of range for time.Duration
        at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:262) ~[grpc-stub-1.35.0.jar!/:1.35.0]
        at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:243) ~[grpc-stub-1.35.0.jar!/:1.35.0]
        at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:156) ~[grpc-stub-1.35.0.jar!/:1.35.0]
        at io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub.respondWorkflowTaskCompleted(WorkflowServiceGrpc.java:2654) ~[temporal-serviceclient-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.lambda$sendReply$0(WorkflowWorker.java:384) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.common.GrpcRetryer.lambda$retry$0(GrpcRetryer.java:109) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.common.GrpcRetryer.retryWithResult(GrpcRetryer.java:127) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.common.GrpcRetryer.retry(GrpcRetryer.java:106) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.sendReply(WorkflowWorker.java:377) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:324) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:280) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        at io.temporal.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:73) ~[temporal-sdk-1.0.5-SNAPSHOT.jar!/:na]
        ... 3 common frames omitted

possibly this is coming form the workflow code, where the date is set ot 900 years from now and Workflow.Sleep(duration) is not able to convert to it properly.

out of curiosity, why do you need 900 year timer?

we dont need, its some junk data which created problem.

please cut an bug report here: GitHub - temporalio/sdk-java: Temporal Java SDK