coinbase / temporal-ruby

Ruby SDK for Temporal
Apache License 2.0
236 stars 89 forks source link

NoMethodError when await_workflow_result is called for long running workflows #326

Open iekundayo opened 2 hours ago

iekundayo commented 2 hours ago

Seeing the below error when calling await_workflow_result for longer workflows.

await_workflow_result': undefined method 'type' for nil:NilClass (NoMethodError)

The current implementation assumes that the result will always be returned with non-empty events list if a request doesn't time out from GRPC::DeadlineExceeded. This is not the case when a request is created with the wait_new_event option set to true. Temporal sever treats this as a long poll request and populates the next_page_token to inform that client that it needs to keep polling. This process is repeated until an empty next_page_token is sent alongside the new event.

iekundayo commented 2 hours ago

Opened a PR to propose a fix for this: https://github.com/coinbase/temporal-ruby/pull/325