Power Automate中向数组变量追加元素报错的原因排查
Power Automate数组追加附件报错排查及解决
问题场景
在Power Automate中搭建工作流:触发条件为项目创建完成,后续步骤包含获取附件、初始化变量、读取附件内容,目标是把所有附件通过邮件发送给创建者及抄送组,但执行「Append to array variable」操作时持续报错,尝试添加/移除base64相关处理均无效。从报错截图来看,表达式采用了字符串拼接的方式构造数组元素,这是核心问题。
核心原因及解决方法
Power Automate发送邮件时,附件数组的每个元素必须是结构化的JSON对象,而非拼接出来的字符串:
- 正确的数组元素格式需要包含两个必填键:
Name(附件文件名)和ContentBytes(base64编码的附件内容)。 - 解决步骤:
- 确认初始化的变量为数组类型(不是字符串或其他类型)。
- 在「Append to array variable」操作中,直接构造对象,无需字符串拼接:
{ "Name": @{items('Apply_to_each')?['DisplayName']}, "ContentBytes": @{body('Get_attachment_content')?['$content']} } - 注意:
Get attachment content返回的$content本身就是base64编码后的内容,不需要额外调用base64()或base64ToString()函数处理,直接引用即可。
额外排查点
- 检查「Apply to each」的遍历对象是否为「Get attachments」返回的附件列表,避免遍历错误集合导致变量引用异常。
- 确认邮件发送操作中,附件字段选择的是你初始化并追加元素的数组变量,而非其他值。
内容的提问来源于stack exchange,提问作者Dor. L. V.
相关产品推荐
相关产品推荐

