ORLEANS0016: Grain interface is not active in OrleansContracts.txt
| Property | Value |
|---|---|
| Category | Versioning |
| Severity | Warning |
| Code fix | Available |
The contract analyzer found a grain interface with no active declaration matching its GrainInterfaceType in OrleansContracts.txt. The matching declaration can also be present but marked *RETIRED*.
Impact
Section titled “Impact”The interface identity, version, and methods are absent from contract review. A rename or identity change can become a new RPC contract without an explicit manifest diff.
How to fix
Section titled “How to fix”Verify the interface identity and version, then apply Add to OrleansContracts.txt. The code fix adds or reactivates the interface and records its ordinary instance methods.
If the interface was restored accidentally, remove it from source or introduce a separately named replacement instead of reusing a retired identity.
Apply Regenerate OrleansContracts.txt to rebuild the complete project manifest. Run regeneration separately for each contract project and review the generated diff using the contract compatibility guidance.
Suppress the diagnostic
Section titled “Suppress the diagnostic”Deployable RPC contracts should remain in the manifest. If the project intentionally does not maintain a contract manifest, disable the contract analyzer for the project instead of suppressing individual interfaces.
<EnableOrleansContractsAnalyzer>false</EnableOrleansContractsAnalyzer>