F# host: Could not find an implementation for interface OrleansDashboard.IDashboardGrain - C# host ok
- Dominant language
- C#
- Stars
- 10.9k
- Forks
- 2.1k
- Avg merge
- 14h 42m
- Merged PRs (30d)
- 354
Description
Unable to host silo in F# console project. C# console project works fine. Please see attached minimal repo.
[FsGrains (2).zip](https://github.com/dotnet/orleans/files/10267813/FsGrains.2.zip)
Need to host in F# due to other F# frameworks (e.g. for web dev) required for the application.
Issue is with the 7.x version. This was not an issue with the 3.x.x version of Orleans.
F# hosting works if 'UseDashboard' is commented out.
Error seen:
```
fail: Orleans.Runtime.SiloLifecycleSubject[100450]
Orleans.Hosting.SiloBuilderStartupExtensions+StartupTask failed to start due to errors at stage Active (20000)
System.ArgumentException: Could not find an implementation for interface OrleansDashboard.IDashboardGrain
at Orleans.GrainInterfaceTypeToGrainTypeResolver.GetGrainType(GrainInterfaceType interfaceType) in /_/src/Orleans.Core/Core/GrainInterfaceTypeToGrainTypeResolver.cs:line 149
at Orleans.GrainFactory.GetGrain(Type interfaceType, IdSpan grainKey, String grainClassNamePrefix) in /_/src/Orleans.Core/Core/GrainFactory.cs:line 214
at Orleans.GrainFactory.GetGrain[TGrainInterface](Int64 primaryKey, String grainClassNamePrefix) in /_/src/Orleans.Core/Core/GrainFactory.cs:line 52
at OrleansDashboard.Dashboard.ActivateDashboardGrainAsync()
at OrleansDashboard.Dashboard.Execute(CancellationToken cancellationToken)
at Orleans.Runtime.SiloLifecycleSubject.MonitoredObserver.OnStart(CancellationToken ct) in /_/src/Orleans.Runtime/Lifecycle/SiloLifecycleSubject.cs:line 134
f
```
Contributor guide
Research direction
Reproduce the failure using the attached FsGrains minimal repository, comparing the F# and C# console hosts with UseDashboard enabled and disabled. Start from OrleansDashboard.Dashboard.ActivateDashboardGrainAsync and the GrainInterfaceTypeToGrainTypeResolver.GetGrainType stack trace; done means the F# silo starts with UseDashboard enabled without the missing-implementation error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, fsharp
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100