Known Limitations Across Recipes
Every recipe eventually runs into the same handful of platform constraints. They’re collected here once so each recipe can stay focused on its own steps.
Timeouts
Section titled “Timeouts”- HTTP tool calls default to a 30-second timeout, configurable per tool up to 60 seconds. Long-running calls (such as large lineage traversals) can still hit the ceiling.
- Client surfaces add their own limits: Microsoft Copilot and Teams cut responses off around 45 seconds. Prefer text over chart generation in latency-sensitive surfaces.
SQL and data products
Section titled “SQL and data products”- The SQL Execution tool truncates large result sets when formatting them for the model (about 10,000 characters). A working prompt pattern: instruct the agent to re-query just the missing columns once.
- Query agents read the data product’s description fields. Put rules like “default country is Singapore” in the data product’s metadata, not in the agent prompt — metadata fixes consistently outperform prompt fixes.
- Scope each agent to one data product. Agents over multiple data products answer noticeably less reliably.
Email (SMTP tool)
Section titled “Email (SMTP tool)”- Authentication supports username/password (basic) and OAuth 2.0 client credentials (XOAUTH2) for Microsoft 365 / Exchange Online.
- CC and BCC are supported, charts can be embedded inline in HTML bodies with
<img src="cid:asset_id" />(PNG only), and Microsoft Purview sensitivity labels can be applied.
Agents and tools
Section titled “Agents and tools”- Cloning an agent copies its tool parameter bindings as they were; re-check bindings such as
allow_fallback_authon the clone before publishing. - Custom tools you create in Agent Studio call HTTP endpoints or send email over SMTP. For tools hosted on other MCP servers, see connecting external MCP servers.
- Tool approvals can’t be granted from MCP clients; approval-gated tools need the Agent Studio web UI.
Flows and schedules
Section titled “Flows and schedules”- Scheduled flows email you on failure by default (
notify_on_failure); pair it with periodic review of the interaction logs and usage. - Schedules are timezone-aware; verify the run history after daylight-saving transitions.