Root cause: stale or missing callback registration in that specific environment.
Dataverse triggers rely on a hidden callbackregistration record to know the flow exists. When importing a managed solution, that registration can fail to create or gets stuck in a bad state, which is why the flow shows On but never fires.
Fix confirmed from a Microsoft support case: go to the Advanced Find or Dataverse table browser, open the callbackregistration table, find the record linked to your flow's workflow ID, and delete it. Then turn the flow off and back on. Turning it on recreates the callback registration fresh with a new ID and proper linkage.
If you can't find the registration via the UI, delete it via XrmToolBox (Dataverse Browser or FetchXML Builder) or via Power Automate Desktop with the Dataverse connector. The flow ID to match is the workflow GUID from the flow's URL.
This is environment-specific because the registration is a Dataverse record, not part of the managed solution zip itself, so the same artifact can register fine in two environments and fail silently in a third.
Best regards,
Valantis ✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.
❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).
🏷️ For follow-ups @Valantis.
📝 https://valantisond365.com/ 💼 LinkedIn ▶️ YouTube