Question / Description
I’m seeing a consistent difference in error handling behavior in Copilot Studio depending on how a connector is invoked, and I’d like to understand whether this is by design or a limitation.
Scenario 1 – Connector called directly from a Topic
-
Topic invokes a Custom Connector action directly
-
Connector returns:
-
4xx / 5xx with body OR
-
runtime failure
-
-
Result:
-
The “On error” branch of the action is triggered correctly
-
Topic can handle the error
-
-
✅ This works as expected.
Scenario 2 – Tool called from a Topic (Tool wraps the same connector)
-
Topic invokes a Tool
-
Tool internally calls the same Custom Connector
-
Tool error handling is set to “Raise an error”
-
Connector returns the same error response as Scenario 1
❌ Result:
-
The Topic does NOT receive the error
-
The “On error” branch is never triggered
-
Topic execution does not regain control
Scenario 3 – Agent calls the Tool directly (no Topic)
-
Agent invokes the Tool directly
-
Connector returns error
✅ Result:
-
Agent is able to handle the error
-
Error behavior works as expected
Observation
It appears that:
-
Errors raised by Tools invoked from Topics do not propagate back to the Topic runtime
-
Errors raised by Connectors invoked directly from Topics do propagate
-
Errors raised by Tools invoked directly by the Agent propagate correctly
Question
-
Is this difference in error propagation by design?
-
Are Topics unable to handle errors raised by Tools?
-
Is there any supported way for a Topic to catch or branch on Tool errors?
-
Is this documented anywhere, or planned to change?


Report
All responses (
Answers (