Skip to content

Fixing actors.next registration for multiple IHostedService registrations - #1932

Merged
WhitWaldo merged 2 commits into
masterfrom
actor-registration-fix
Oct 7, 2026
Merged

WhitWaldo merged 2 commits into
masterfrom
actor-registration-fix

Conversation

@WhitWaldo

Copy link
Copy Markdown
Contributor

Description

Register SubscribeActorEventsStreamManager hosted service via TryAddEnumerable wrapper

TryAddSingleton deduplicates by service type alone, so any hosted service the application registered before the first AddDaprActorsCore call (OpenTelemetry, Dapr workflows, app hosted services, ...) suppressed the registration entirely. The stream manager then never started, no actor types were announced to placement, and every actor invocation failed with 'did not find address for actor'.

Register a dedicated SubscribeActorEventsStreamHostedService wrapper through TryAddEnumerable, which deduplicates by implementation type: added exactly once across repeated AddDaprActorsCore calls, never suppressed by unrelated hosted services, and never double-started.

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

…numerable wrapper

TryAddSingleton<IHostedService> deduplicates by service type alone, so any
hosted service the application registered before the first AddDaprActorsCore
call (OpenTelemetry, Dapr workflows, app hosted services, ...) suppressed the
registration entirely. The stream manager then never started, no actor types
were announced to placement, and every actor invocation failed with
'did not find address for actor'.

Register a dedicated SubscribeActorEventsStreamHostedService wrapper through
TryAddEnumerable, which deduplicates by implementation type: added exactly once
across repeated AddDaprActorsCore calls, never suppressed by unrelated hosted
services, and never double-started.

Signed-off-by: Whit Waldo <whit.waldo@innovian.net>
@WhitWaldo WhitWaldo added this to the v1.19 milestone Oct 7, 2026
@WhitWaldo WhitWaldo self-assigned this Oct 7, 2026
@WhitWaldo
WhitWaldo requested review from a team as code owners October 7, 2026 20:48
@codecov

codecov Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.84%. Comparing base (c78ecec) to head (252d503).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1932      +/-   ##
==========================================
- Coverage   64.86%   64.84%   -0.02%     
==========================================
  Files         360      360              
  Lines       10612    10612              
  Branches     1252     1252              
==========================================
- Hits         6883     6881       -2     
- Misses       3388     3390       +2     
  Partials      341      341              
Flag Coverage Δ
net10.0 64.80% <ø> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 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: Whit Waldo <whit.waldo@innovian.net>
@WhitWaldo
WhitWaldo merged commit 3336317 into master Oct 7, 2026
679 of 681 checks passed
@WhitWaldo
WhitWaldo deleted the actor-registration-fix branch October 7, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant