I've been dealing with a frustrating issue in Durable Functions orchestrators where non-deterministic code paths manage to slip through code reviews and only become apparent when they're running in production, leading to replay failures and unexpected behavior after deployments.
Some common causes I've encountered include:
- Using DateTime or random values in orchestrators
- Async calls that unintentionally fall outside of activities
- Minor I/O operations that seem harmless during review
While runtime checks can help, they often trigger too late, after problems have already occurred.
For those who are using Durable Functions in production, I'm curious:
- Do you depend entirely on runtime safeguards?
- How disciplined are you in code reviews?
- Have you developed any custom tools?
I'd love to hear how others are tackling these challenges in practice.
3 Answers
There's actually a dedicated analyzer for C# isolated function apps available. You might want to check it out to help catch non-deterministic patterns in your code before it goes live.
That really highlights a common struggle. As your system scales, launches shift from exciting events to major systems challenges, and issues usually surface in key areas like inventory accuracy or support volume right after the launch. Where have you noticed things tend to break for you? Let's compare notes!
Coyote looks like a promising tool for this issue, but I wish there were fewer publishing problems. You can build it from source to try it out. Additionally, consider writing analyzers for DateTime usage and suggest using TimeProvider instead to mitigate non-determinism. Injecting any sources of nondeterminism into your process is key.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically