When a Cloud Flow Stops Triggering… Even Though Nothing Is Wrong
So here’s a fun one I ran into recently.
I had a Power Automate cloud flow — simple Dataverse trigger, nothing fancy — that did work at one point.
After making some changes, it suddenly stopped firing.
No errors.
No warnings.
Just… nothing.
Naturally, I tried all the usual things:
- deleting and recreating the trigger
- resetting connection references
- recreating actions
- turning the flow off and on again (obviously)
None of it worked.
The only reliable way I found to fix it was to duplicate the entire cloud flow.
The new one would run perfectly — even though it was a carbon copy of the original.
🔎 The Culprit
After a lot of digging, I discovered there’s a hidden table that holds Dataverse trigger information called:
Callback Registrations
This table holds the actual trigger configuration used by the platform — not just what you see in the flow designer.
Apparently this table has a bit of a reputation. Over the years people have reported:
- trigger entries disappearing entirely
- broken references to cloud flow IDs
- filters behaving very differently to what the UI shows
So I had a look.
🧪 Checks
First, you’ll need the workflow ID for the cloud flow in question.
You can retrieve it with the following query — just replace the environment and the flow name (inside the quotes):
https://<environment>.crm.dynamics.com/api/data/v9.2/workflows?$select=workflowid,name,category,statecode&$filter=category eq 5 and statecode eq 1 and name eq "<your flow name>"
Next, query the callback registration table:
Get Callback registration entrieshttps://<environment>.crm.dynamics.com/api/data/v9.2/callbackregistrations
You should find an entry where the name or workflowid matches your cloud flow.
An example record looks like this:
{
"@odata.etag":"W/\"4343159\"",
"_createdonbehalfby_value":null,
"runas":1,
"url":null,
"_owninguser_value":"c0685462-bd5c-f011-bec1-6045bd1197e4",
"scope":4,
"harddelete":false,
"filteringattributes":"dateofbirth",
"name":"34686658-eea8-f011-bbd3-6045bdc1830d:MTA",
"_createdby_value":"c0685462-bd5c-f011-bec1-6045bd1197e4",
"_modifiedonbehalfby_value":null,
"_owningbusinessunit_value":"eb162be3-4c58-f011-bec2-6045bdd11f49",
"versionnumber":4343159,
"version":1,
"postponeuntil":null,
"_owningteam_value":null,
"entityname":"customers",
"logicappsversion":"08584410933555654208",
"_modifiedby_value":"c0685462-bd5c-f011-bec1-6045bd1197e4",
"callbackregistrationid":"080cfa0c-99a9-f011-bbd3-7ced8d9a42f7",
"sdkmessagename":null,
"modifiedon":"2025-10-15T07:32:10Z",
"runtimeintegrationproperties":null,
"message":4,
"_ownerid_value":"c0685462-bd5c-f011-bec1-6045bd1197e4",
"softdeletestatus":0,
"filterexpression":active eq 1,
"createdon":"2025-10-15T07:32:10Z"
}
❗ The Problem
When I checked my cloud flow trigger in the designer, the filter was blank.
But in the callback registration table, filterexpression still contained a value we had used earlier — one that had supposedly been removed.
That stale filter was the reason the cloud flow wasn’t triggering.
This also explains why duplicating the cloud flow “fixed” it:
a brand-new callback registration record was created, this time with the correct (empty) filter expression.
And that wasn’t the end of it…
A few weeks later we hit the same issue again, this time with the filteringattributes column behaving in exactly the same way.
Why?
It turns out that blanking a field in the trigger does not (currently) remove it from the callback registration table.
So what you end up with is:
- the front end saying “no filter”
- the back end still enforcing one
- a cloud flow that never fires
- and a developer questioning their life choices
In other words: the UI and backend quietly diverge — and nobody tells you.
🛠️ The Solution
At the moment, the only reliable fix (other than duplicating the flow) is to force Dataverse to overwrite the old value.
To do that, add a filter expression that always resolves to true.
In our case, we used:
active eq 1
Save the flow.
Once Dataverse updates the callback registration entry, the trigger starts behaving again.
Other Issues
While hunting this down, I also came across reports of:
- completely missing callback registration entries
- broken registrations when the owning user account is disabled or removed
- triggers that silently stop working after environment changes
None of which are particularly fun to debug.
🧠 Final Thoughts
This is one of those Power Platform issues where everything looks correct — until you realise the real configuration lives somewhere else entirely.
If you ever have a Dataverse-triggered flow that suddenly stops firing for no obvious reason, it’s worth checking the callback registration table before you lose too much time.
And with a bit of luck…
this should still work 😉
📚 References & Notes
🧪 Tested on: Power Platform / Dataverse — Late 2025
🔍 Table involved: callbackregistrations