FirelyTeam / firely-net-sdk

The official Firely .NET SDK for HL7 FHIR
Other
816 stars 340 forks source link

Better diagnostics when resolvers fail #2778

Open ewoutkramer opened 2 months ago

ewoutkramer commented 2 months ago

The IResourceResolver interface allows resolvers to return "null" when something "cannot be resolved". But the cause of something not being resolvable remains unclear. This has caused many hours of chasing down bugs where the resource could be resolved, but (most prominently) a StructureDefiniton could not be snapshotted.

It would be way better if we could somehow return a resource OR an error. Of course, this is a massively breaking change. But smaller changes would mean the error can be easily ignored. Throwing exceptions also is not a great solution, still a lot of code is currently checking for null.

Since the most problematic of these is the SnapshotSource, a temporary "hack" to check SnapshotSource.Outcome after resolution MAY work, but its not great.