Skip to content

fix: signal when dt reader stream is ready within wf client start call#901

Merged
sicoyle merged 10 commits intodapr:mainfrom
sicoyle:fix-notify-when-stream-ready
Feb 6, 2026
Merged

fix: signal when dt reader stream is ready within wf client start call#901
sicoyle merged 10 commits intodapr:mainfrom
sicoyle:fix-notify-when-stream-ready

Conversation

@sicoyle
Copy link
Contributor

@sicoyle sicoyle commented Jan 29, 2026

Description

Corresponding PR for dapr/durabletask-python#42

I identified a race condition where we report success from wf_client.start() in the Python SDK before the DurableTask worker’s stream reader thread is fully initialized. This PR addresses the issue by introducing a poll to check for the worker and its stream reader thread have actually started so it can actually signal everything is ready and the wf client start was fully successful. This will ensure that workflows scheduled immediately do not hit issues due to the stream reader not being ready yet. I also added more try/except blocks and additional logging.

Issue reference

We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.

Please reference the issue this PR will close: #[issue number]

Checklist

Please make sure you've completed the relevant tasks for this PR, out of the following list:

  • Code compiles correctly
  • Created/updated tests
  • Extended the documentation

Signed-off-by: Samantha Coyle <sam@diagrid.io>
@sicoyle sicoyle requested review from a team as code owners January 29, 2026 22:57
Signed-off-by: Samantha Coyle <sam@diagrid.io>
@codecov
Copy link

codecov bot commented Feb 3, 2026

Codecov Report

❌ Patch coverage is 87.80488% with 20 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.73%. Comparing base (bffb749) to head (76fa44c).
⚠️ Report is 67 commits behind head on main.

Files with missing lines Patch % Lines
...ext-workflow/dapr/ext/workflow/workflow_runtime.py 64.28% 20 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #901      +/-   ##
==========================================
+ Coverage   86.63%   86.73%   +0.10%     
==========================================
  Files          84      103      +19     
  Lines        4473     7133    +2660     
==========================================
+ Hits         3875     6187    +2312     
- Misses        598      946     +348     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Signed-off-by: Samantha Coyle <sam@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io>
CasperGN
CasperGN previously approved these changes Feb 3, 2026
Signed-off-by: Samantha Coyle <sam@diagrid.io>
@sicoyle sicoyle merged commit 8392606 into dapr:main Feb 6, 2026
11 checks passed
@sicoyle sicoyle deleted the fix-notify-when-stream-ready branch February 6, 2026 20:42
@nelson-parente nelson-parente modified the milestones: v1.16, v1.17 Feb 12, 2026
sicoyle added a commit to sicoyle/python-sdk that referenced this pull request Mar 5, 2026
dapr#901)

* fix: signal when dt reader stream is ready within wf client start call

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: enable configurability + lint fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add tests and fix bug

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add another test

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* test: add even more tests for build to pass lol

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>
sicoyle added a commit to sicoyle/python-sdk that referenced this pull request Mar 5, 2026
dapr#901)

* fix: signal when dt reader stream is ready within wf client start call

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: enable configurability + lint fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add tests and fix bug

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add another test

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* test: add even more tests for build to pass lol

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>
sicoyle added a commit to sicoyle/python-sdk that referenced this pull request Mar 5, 2026
dapr#901)

* fix: signal when dt reader stream is ready within wf client start call

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: enable configurability + lint fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add tests and fix bug

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add another test

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* test: add even more tests for build to pass lol

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>
sicoyle added a commit to sicoyle/python-sdk that referenced this pull request Mar 5, 2026
dapr#901)

* fix: signal when dt reader stream is ready within wf client start call

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: enable configurability + lint fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add tests and fix bug

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add another test

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* test: add even more tests for build to pass lol

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>
sicoyle added a commit that referenced this pull request Mar 6, 2026
* Workflow: remove sleeps from example (#894)

* Workflow: remove sleeps from example

Remove arbitrary sleeps from workflow examples

Signed-off-by: joshvanl <me@joshvanl.dev>

* tox -e ruff

Signed-off-by: joshvanl <me@joshvanl.dev>

---------

Signed-off-by: joshvanl <me@joshvanl.dev>
Signed-off-by: Samantha Coyle <sam@diagrid.io>

* Workflow versioning (#893)

Signed-off-by: Albert Callarisa <albert@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: signal when dt reader stream is ready within wf client start call (#901)

* fix: signal when dt reader stream is ready within wf client start call

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: enable configurability + lint fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add tests and fix bug

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add another test

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* test: add even more tests for build to pass lol

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* feat(convo): add new fields to conversation api (#902)

* feat(convo): add new fields to conversation api

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: update proto/grpc code generator and add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: tox -e type fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* add venv (#921)

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Co-authored-by: Sam <sam@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: Align Workflow Multi App Naming Convention (#932)

Signed-off-by: Matheus André <92062874+matheusandre1@users.noreply.github.com>
Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(bug): workflow client missing close function to pass to durable task (#889)

* chore(deps): bump dapr dep to 1.17.0.dev

Signed-off-by: Casper Nielsen <casper@diagrid.io>

* chore(deps): bump durabletask-dapr to 0.2.0a15

Signed-off-by: Casper Nielsen <casper@diagrid.io>

* feat: ensure taskhubgrpcclient expose .close() method for clients to pass down a close call to durabletask

Signed-off-by: Casper Nielsen <casper@diagrid.io>

---------

Signed-off-by: Casper Nielsen <casper@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: signal when dt reader stream is ready within wf client start call (#901)

* fix: signal when dt reader stream is ready within wf client start call

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: enable configurability + lint fixes

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add tests and fix bug

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add more tests

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: appease linter

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): add another test

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* test: add even more tests for build to pass lol

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* style: rm prefix of == APP ==

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix(build): grab latest 1.17 runtime

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: exclude prereleases

Signed-off-by: Samantha Coyle <sam@diagrid.io>

* fix: update readmes for release branch

Signed-off-by: Samantha Coyle <sam@diagrid.io>

---------

Signed-off-by: joshvanl <me@joshvanl.dev>
Signed-off-by: Samantha Coyle <sam@diagrid.io>
Signed-off-by: Albert Callarisa <albert@diagrid.io>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Matheus André <92062874+matheusandre1@users.noreply.github.com>
Signed-off-by: Casper Nielsen <casper@diagrid.io>
Co-authored-by: Josh van Leeuwen <me@joshvanl.dev>
Co-authored-by: Albert Callarisa <albert@diagrid.io>
Co-authored-by: Cassie Coyle <cassie@diagrid.io>
Co-authored-by: Matheus André <92062874+matheusandre1@users.noreply.github.com>
Co-authored-by: Casper Nielsen <casper@diagrid.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants