使用本文排查Power Automate云流中最常见的错误。 每个条目都说明了错误的含义、发生原因以及如何修复错误。
注释
此参考适用于所有Power Automate云流许可证层。 在 排查桌面流错误时了解特定于桌面流的错误。
设计时错误
保存、验证或发布流时,会发生这些错误。
无效模板
含义:流定义在表达式或操作配置中包含语法错误。
常见原因:
- 表达式中不匹配的括号或引号
- 引用不存在的操作输出(操作名称中的拼写错误)
- 使用参数数量错误的函数(例如,
createArray()没有参数) - 常量表达式(例如,
int('abc')或div(100, 0))中的类型不匹配 - 引擎在节省时间时验证这些类型不匹配 - 从包含不可见 Unicode 字符的文档复制粘贴表达式
如何修复:
- 在设计器中以红色突出显示的操作。
- 检查编辑栏中的表达式。 查找不匹配
()或'字符。 - 验证表达式中的操作名称是否完全匹配(区分大小写):
outputs('Get_item')不outputs('Get Item')。 - 如果表达式看起来正确,请将其删除并手动重新键入以删除隐藏字符。
小窍门
表达式中的操作名称使用下划线而不是空格。 如果操作名为“Get item”,则表达式引用为 outputs('Get_item').
相关信息: ExpressionEvaluationFailed、 FlowCheckerError
FlowCheckerError
含义:流检查器发现了一个或多个阻止保存的验证问题。
常见原因:
- 一个或多个操作中必填字段为空
- 未为连接器操作选择连接
- 表达式引用并行分支中的动态内容值(不能保证存在)
- 触发器输入不完整
如何修复:
- 选择设计器顶部的错误横幅以显示问题的完整列表。
- 选择每个错误以导航到受影响的操作。
- 填写必填字段,修复损坏的表达式,然后选择连接。
- 再次保存。 检查器在保存时自动运行。
相关信息: InvalidTemplate、 MissingRequiredProperty
DuplicateActionName
含义:流中的两个或多个操作具有相同的内部名称。
常见原因:
- 复制粘贴操作而不重命名操作
- 导入使用重复键手动编辑的流定义
- 将操作重命名为同一范围内另一个操作已使用的名称
如何修复:
- 在流中搜索具有相同名称的操作(也检查内部
Apply to Each和Scope容器)。 - 重命名其中一个重复项。 选择操作上的 ... 菜单,然后选择“ 重命名”。
- 将引用重命名操作
outputs('Old_Name')的任何表达式更新为outputs('New_Name')。
相关信息: InvalidTemplate
MissingRequiredProperty
含义:操作或触发器的必需输入字段为空。
常见原因:
- 添加连接器操作但未完成配置
- 解析为空的动态内容令牌在必填字段中使用
- 从未设置环境变量的解决方案导入的流
如何修复:
- 打开标记为错误的操作。
- 查找用红色星号标记为空的字段。
- 使用静态文本或动态内容令牌填写所需的值。
- 对于解决方案流,请检查所有环境变量是否在目标环境中都有值。
相关信息: FlowCheckerError
运行时表达式错误
当无法计算流运行和表达式时,会发生这些错误。
ExpressionEvaluationFailed
含义:
表达式在运行时无法求值,因为实际数据与表达式预期的数据不匹配。 仅当表达式使用无法节省时间检查的 动态值 (变量、触发器正文、操作输出)时,才会发生此错误。
注释
如果表达式仅使用常量值(如 int('abc') 或 div(100, 0)),则流引擎在保存时捕获错误,而不是 InvalidTemplate 。
常见原因:
- 在运行时调用
int()包含非数值字符串的变量 - 访问 null 对象上的属性(
outputs('Get_item')?['body/title']当Get_item未返回任何内容时) - 格式不匹配
formatDateTime()或parseDateTime()格式来自变量时的日期格式不匹配 - 当除数是碰巧为 0 的动态值时除以零
如何修复:
- 打开失败的运行并选择失败的操作以显示表达式和输入值。
- 用 null 检查包装有风险的表达式:
if(empty(triggerBody()?['value']), 'default', triggerBody()?['value'])。 - 用于
coalesce()提供回退值:coalesce(outputs('Get_item')?['body/title'], 'Untitled') - 在转换前验证数据类型:
if(isInt(variables('input')), int(variables('input')), 0)。
小窍门
了解适用于 云流的 Expression 指南中具有 null 安全处理的现成表达式模式库。
相关信息: InvalidTemplate、 ContentConversionFailed
ContentConversionFailed
含义:流无法在操作之间将数据从一种类型转换为另一种类型。
常见原因:
- 传递需要整数或布尔值的字符串
- 将数组发送到需要单个对象的操作
- 采用意外格式的日期字符串(例如,
DD/MM/YYYY预期时间MM/DD/YYYY) - 传递给文本输入的二进制内容(文件)
如何修复:
- 检查运行历史记录中失败操作的输入。 将实际值类型与操作所需的类型进行比较。
- 使用显式转换函数:
int()、、float()string()、bool()json()。 - 对于日期,请使用
parseDateTime()显式区域设置或在formatDateTime()传递之前规范化。 - 对于数组,如果下游操作需要一个值,则用于
first()提取单个项。
相关信息: ExpressionEvaluationFailed
连接和身份验证错误
当流无法向连接的服务进行身份验证时,会发生这些错误。
InvalidConnection
含义:流中的连接引用指向断开、删除或过期的连接。
常见原因:
- 创建连接的用户更改了其密码或重置了 MFA
- 连接已从“连接”页中删除
- 管理员通过 Power Platform 管理中心删除了连接
- 流已导入到连接不存在的环境中
如何修复:
- 在编辑模式下打开流。 连接中断的操作会显示警告图标。
- 选择该操作,然后选择 “更改连接 ”或 “添加新连接”。
- 使用相应的凭据登录,以创建新的连接。
- 保存和测试流。
重要
对于生产流,请考虑使用服务主体连接而不是个人用户连接。 当用户更改其密码或离开组织时,服务主体连接不会过期。
相关信息: ConnectionNotConfigured、 ConnectionAuthorizationFailed
ConnectionNotConfigured
含义:操作需要连接,但未选择任何连接。
常见原因:
- 流是从解决方案导入的,连接引用未映射
- 添加了新操作,但已跳过连接步骤
- 连接引用指向没有值的环境变量
如何修复:
- 在编辑模式下打开流,并使用连接警告查找操作。
- 从下拉列表中选择现有连接,或创建新的连接。
- 对于解决方案流,请转到 解决方案>默认解决方案>连接引用。
- 为每个引用设置连接。
相关信息: InvalidConnection
未授权 (401)
含义:API 拒绝了请求,因为身份验证令牌无效或已过期。
常见原因:
- OAuth 令牌已过期,连接无法自动刷新
- 用户帐户已禁用或更改密码
- 服务主体机密或证书已过期
- 条件访问策略阻止了登录(异地、设备符合性)
如何修复:
- 转到 Power Automate>Connections并查找失败操作使用的连接。
- 如果连接显示警告,请选择“ 修复连接 ”并重新进行身份验证。
- 对于服务主体连接,请轮换Microsoft Entra ID中的机密并更新连接。
- 检查条件访问块Microsoft Entra ID登录日志:
Azure 门户 Microsoft Entra ID Microsoft Entra IDSign-in logs ,按应用名称进行筛选。
相关信息: 禁止(403)、 ConnectionAuthorizationFailed
禁止 (403)
含义:经过身份验证的用户或应用无权执行请求的操作。
常见原因:
- DLP (数据丢失防护) 策略阻止此环境中的连接器或连接器操作
- 用户缺少对目标资源的权限(例如,对SharePoint list没有写入访问权限)
- 管理员通过租户级设置限制连接器
- 连接器需要高级许可证,并且用户正在设定种子计划
如何修复:
- 检查 DLP 策略: Power Platform 管理中心>数据策略。 查找阻止环境组中连接器的策略。
- 验证连接用户是否对目标服务拥有正确的权限(SharePoint站点权限、Dataverse 安全角色和类似角色)。
- 如果这是高级连接器问题,请验证流所有者或调用方是否有Power Automate Premium 许可证。
- 如果需要修改 DLP 策略,请联系管理员。
相关信息: 未授权(401)、 DirectApiAuthorizationRequired
ConnectionAuthorizationFailed
含义:连接存在,但其存储的凭据不再有效。
常见原因:
- 用户的密码已更改或 MFA 方法已重置
- OAuth 刷新令牌已过期(常见连接未使用 90 天)
- 管理员在 Microsoft Entra ID 中撤销了应用的许可
- 所有者未共享共享共享连接
如何修复:
- 打开 Power Automate>Connections。
- 查找受影响的连接。
- 选择连接,然后选择“ 修复连接 ”以重新进行身份验证。
- 如果使用共享连接,请让连接所有者重新共享它。
- 对于服务帐户,请设置日历提醒以在凭据过期之前轮换凭据。
小窍门
在云流 <中查找连接器(SharePoint、Outlook、SQL Server、Dataverse、HTTP)的连接问题的详细教程>云流中的Fix 连接故障。
相关信息: InvalidConnection、 Unauthorized (401)
连接器和 API 错误
这些错误来自流正在调用的下游服务。
ActionFailed
含义:操作返回了失败状态。 这是一个通用包装器。 实际错误详细信息位于操作的输出正文中。
常见原因:
- 下游 API 返回了 4xx 或 5xx 错误
- 子流(通过“运行子流”调用)失败
- 自定义连接器返回了意外的响应格式
- 操作的“配置运行后”设置导致它在之前失败后执行
如何修复:
- 打开失败的运行并选择失败的操作。
- 展开 “输出 ”以显示 API 中的实际错误消息和状态代码。
- 根据特定 API 错误修复基础问题(查看本参考中的 400、401、403 和 404 个条目)。
- 如果操作应在操作失败时运行,请检查其 “配置”在设置后运行 。
相关信息: BadRequest (400)、 NotFound (404)
BadRequest (400)
含义:连接器 API 拒绝了请求,因为输入数据格式不正确或无效。
常见原因:
- 发送数据类型错误的字段(字符串而不是数字,反之亦然)
- 请求正文中缺少的必填字段
- 文件名或列表项标题中的字符无效
- 超出字段长度限制(例如,SharePoint单行文本 = 255 个字符)
如何修复:
- 在运行历史记录中打开失败的操作,并查看 “输入 ”部分,以显示发送的内容。
- 将输入与 API 的预期架构进行比较(请查看连接器文档)。
- 在传递给操作之前,使用删除无效字符来清理用户输入
replace()。 - 使用
substring()或take()截断字段的最大长度的长值。
相关信息: ActionFailed、 ContentConversionFailed
NotFound (404)
含义:操作尝试访问的资源不存在。
常见原因:
- 已重命名或删除SharePoint list、库或网站
- 已删除Outlook文件夹或 Teams 频道
- 流引用不再存在的资源的硬编码 ID
- Dataverse 表或行已被另一个进程删除
如何修复:
- 检查目标服务中是否存在资源。
- 如果已重命名,请更新操作以使用新名称或 ID。
- 尽可能将硬编码 ID 替换为动态查找(例如,将“获取项”替换为筛选器,而不是使用静态 ID 的“获取项”)。
- 添加错误处理:将下一个操作配置为 运行后>失败 并正常处理 404。
相关信息: ActionFailed
触发器错误
这些错误与流触发器不触发或失败有关。
TriggerConditionNotMet
含义:触发器评估了其条件并确定事件不应启动流运行。
常见原因:
- 触发器条件表达式的计算结果始终为 false(逻辑错误)
- 触发器条件引用触发器有效负载中不存在的字段
- 事件发生,但数据与筛选器不匹配(例如,“创建项目时”,状态为空)
如何修复:
- 转到 触发器的设置并 查看触发器条件表达式。
- 针对已知事件有效负载测试条件。 使用触发器上的 “速览”代码 显示原始架构。
- 暂时删除条件,手动触发流,并检查触发器输出以验证字段名称和值。
- 修复表达式并重新启用条件。
相关信息: ExpressionEvaluationFailed
超时和限制错误
当流或操作超过时间或速率限制时,会发生这些错误。
ActionTimedOut
含义:单个操作超过了其配置的超时,并且已取消。
常见原因:
- 调用默认 100 秒超时速度缓慢的外部 API 的 HTTP 操作
- “等待审批”,过期
- 通过慢速连接上传或下载大型文件
- 不分页返回过多行的 Dataverse 查询
如何修复:
- 打开 操作的设置并 增加 超时 值(例如,
PT5M5 分钟 ISO 8601 持续时间)。 - 对于 HTTP 操作,请检查外部 API 是否具有长时间运行的操作模式(在重试后轮询)。
- 对于 Dataverse,请添加
$filter和$top减少结果集。 - 对于审批,请设置合理的过期时间,并添加超时分支来处理非响应。
相关信息: OperationTimedOut
OperationTimedOut
含义:长时间运行的操作(webhook 等待、审批、HTTP 轮询)超过了最长等待时间。
常见原因:
- HTTP Webhook 操作正在等待永不来的回调
- 未过期的审批操作,达到 30 天的流运行限制
- “延迟到”操作设置为超出 30 天运行持续时间限制的日期
- 外部服务关闭,从未发送预期响应
如何修复:
- 始终在 Webhook 和审批操作上设置显式超时。
- 对于 HTTP Webhook 操作,请在超时后>实现配置运行的超时分支。
- 使用带每日检查的循环将长时间等待中断为较短的段。
- 对于 30 天的运行限制,请重新设计长时间运行的进程以使用“中继”模式:结束当前运行并启动状态通过 Dataverse 或文件传递的新进程。
重要
云流的最大运行持续时间为 30 天。 对于花费较长时间的进程,请将它们拆分为具有共享状态的多个流运行。
相关信息: ActionTimedOut
WorkflowRunActionRepetitionQuotaExceeded
含义:“应用于每个循环”超过了最大迭代次数(默认值:100,000(高级),性能配置文件为 5,000 次)。
常见原因:
- 在不首先筛选的情况下处理大型SharePoint list或 Dataverse 表
- 嵌套
Apply to Each循环乘以迭代计数 (100 x 100 = 10,000) -
Get items返回所有行而不是筛选子集的操作
如何修复:
- 将筛选器添加到数据源操作,以减少循环前的项数。
- 使用 OData
$filter和$top获取项操作,而不是在循环内进行筛选。 - 对于大型数据集,请使用分页令牌或日期范围跨多个流运行批处理工作。
- 请考虑使用
Select或Filter array操作,而不是Apply to Each仅当需要转换或筛选数据时。
相关信息: FlowRunQuotaExceeded
FlowRunQuotaExceeded
含义:流或租户超出了其每日操作执行限制。
常见原因:
- 种子/免费许可证:每个用户每天 6,000 个操作
- 高级许可证:每个用户每天 40,000 个操作
- 流程许可证:每个流每天 250,000 个操作
- 循环密集型流,每运行消耗数千个操作
如何修复:
- 检查 Power Platform 管理中心>Analytics>Power Automate中的当前使用情况。
- 优化流以使用更少的操作:将“应用于每个”替换为 Select/Filter、批处理操作、减少轮询频率。
- 如果工作负荷合法地需要更多容量,请升级许可证层。
- 将工作负荷分散到多个流中,或在非高峰时段计划大容量运行。
相关信息: WorkflowRunActionRepetitionQuotaExceeded、 DirectApiAuthorizationRequired
许可错误
DirectApiAuthorizationRequired
含义:流使用高级连接器,但调用方没有高级许可证。
常见原因:
- 具有高级连接器(HTTP、SQL Server、Dataverse、自定义连接器)的流由基于种子Microsoft 365许可证的用户运行
- 流所有者具有高级版,但触发用户不(调用方许可证很重要,而不是所有者)
- 计划流的所有者失去了其高级许可证
- 上下文中的流与其 Power App 取消关联,使其脱离上下文
如何修复:
- 确定哪个连接器需要高级连接器。 错误消息通常将其命名。
- 将 Power Automate Premium 许可证分配给触发或运行流的用户。
- 对于计划或自动化流,请确保流所有者具有高级许可证。
- 考虑进程许可证(每流)对于大容量共享流是否更具成本效益。 还可以 使用流组在最多 25 个流之间共享单个进程许可证。
相关信息: 禁止(403)、 FlowRunQuotaExceeded
快速参考表
| 错误 | 类别 | 可能的修复措施 |
|---|---|---|
| 无效模板 | 设计时 | 修复表达式语法 |
| ExpressionEvaluationFailed | 运行时 | 添加 null 检查,验证类型 |
| ActionFailed | 运行时 | 检查 API 错误的操作输出 |
| FlowCheckerError | 设计时 | 填写必填字段,修复连接 |
| InvalidConnection | 连接 | 重新对连接进行身份验证 |
| ConnectionNotConfigured | 连接 | 选择或创建连接 |
| 未授权 (401) | Auth | 修复连接,轮换凭据 |
| 禁止 (403) | Auth | 检查 DLP 策略、权限 |
| BadRequest (400) | API | 验证输入数据格式 |
| NotFound (404) | API | 验证资源是否存在,更新引用 |
| TriggerConditionNotMet | Trigger | 查看触发器条件表达式 |
| ActionTimedOut | 超时 | 增加操作设置中的超时 |
| DuplicateActionName | 设计时 | 重命名重复操作之一 |
| MissingRequiredProperty | 设计时 | 填写必填字段 |
| ContentConversionFailed | 运行时 | 使用显式类型转换 |
| WorkflowRunActionRepetitionQuotaExceeded | Throttling | 在循环之前筛选数据 |
| DirectApiAuthorizationRequired | 许可授权 | 将高级许可证分配给调用方 |
| FlowRunQuotaExceeded | Throttling | 优化操作计数,升级许可证 |
| ConnectionAuthorizationFailed | 连接 | 修复连接,重新进行身份验证 |
| OperationTimedOut | 超时 | 设置显式超时,使用中继模式 |
相关信息
注意:作者在 AI 的帮助下创建了本文。 了解更多信息