利用本文來排查 Power Automate 雲端流程中最常見的錯誤。 每篇文章都說明錯誤的意義、發生原因以及如何修正。
備註
此參考適用於所有 Power Automate 雲端流程授權層級。 在 「故障排除桌面流程錯誤」中,了解桌面流程特有的錯誤。
設計時錯誤
這些錯誤發生在你儲存、驗證或發布流程時。
InvalidTemplate
意義:流程定義包含表達式或動作配置中的語法錯誤。
常見原因:
- 表達式中的不匹配括號或引號
- 引用不存在的動作輸出(動作名稱中打錯字)
- 使用參數數量錯誤的函數(例如
createArray(),沒有參數) - 常數表達式中的型別不匹配(例如,
int('abc')或div(100, 0))——引擎會在節省時間時驗證這些 - 從包含隱形 Unicode 字元的文件中複製貼上表達式
如何修復:
- 在設計器中以紅色標示的動作開啟。
- 檢查公式欄裡的表達式。 尋找未配對
()或'角色。 - 驗證表達式中的動作名稱完全相同(大小寫區分):
outputs('Get_item')不是outputs('Get Item')。 - 如果表達式看起來正確,刪除並手動重新輸入以移除隱藏字元。
提示
表達式中的動作名稱使用底線而非空格。 如果你的動作名為「取得物品」,則表達式參考為 outputs('Get_item')。
相關資訊: ExpressionEvaluationFailed、 FlowCheckerError
FlowCheckerError
意義:流程檢查器發現了一個或多個驗證問題,導致無法儲存。
常見原因:
- 一個必要欄位在一個或多個動作中為空
- 連接埠不會被選中用於接頭動作
- 一個表達式參考來自平行分支的動態內容值(不保證會存在)
- 觸發輸入不完整
如何修復:
- 選擇設計器頂端的錯誤橫幅,即可顯示完整的問題清單。
- 選取每個錯誤以導航到受影響的動作。
- 填寫必需欄位、修正失效的表達式,並選擇連接。
- 再存檔一次。 存檔時檢查器會自動執行。
相關資訊: InvalidTemplate、 MissingRequiredProperty
重複行動名稱
意義:流程中兩個或以上的動作內部名稱相同。
常見原因:
- 複製貼上動作而不重新命名
- 匯入一個手動編輯並重複鍵的流程定義
- 將一個動作重新命名為同範圍中另一個動作已使用的名稱
如何修復:
- 在流程中搜尋名稱相同的動作(也檢查內部
Apply to Each和Scope容器)。 - 重新命名其中一個重複的。 選擇動作中的 ... 選單,然後選擇 重新命名。
- 更新任何引用已命名動作的表達式:
outputs('Old_Name')為outputs('New_Name')。
相關資訊: InvalidTemplate
缺少必需物品
意義:動作或觸發器上的必填欄位為空。
常見原因:
- 新增連接器動作但未完成設定
- 解決為空的動態內容代幣被用於必填欄位
- 從未設定環境變數的解決方案匯入流程
如何修復:
- 開啟動作時會被標記錯誤。
- 請尋找標有紅色星號(*)且為空白的欄位。
- 填寫所需值,可以用靜態文字或動態內容標記。
- 對於解決方案流程,檢查所有環境變數是否在目標環境中都有值。
相關資訊: FlowCheckerError
執行時表達式錯誤
這些錯誤發生在流程執行時,表達式無法被評估。
ExpressionEvaluationFailed
意義:
某個表達式在執行時未能評估,是因為實際資料與表達式的預期不符。 這個錯誤只發生在表達式使用了無法在儲存時檢查的 動態值 (變數、觸發體、動作輸出)。
備註
若表達式僅使用常數值(如 int('abc') 或 div(100, 0)),流程引擎會在儲存時將錯誤標記為 InvalidTemplate 。
常見原因:
-
int()在執行時呼叫包含非數字字串的變數 - 存取空物件上的屬性(
outputs('Get_item')?['body/title']當Get_item沒有回傳任何東西) - 格式來自變數時的日期格式不符
formatDateTime()parseDateTime() - 除以零,當除數是動態值且恰好為0時
如何修復:
- 打開失敗的執行並選擇失敗的動作以顯示表達式和輸入值。
- 用空檢查包裹風險表達式:
if(empty(triggerBody()?['value']), 'default', triggerBody()?['value'])。 - 用
coalesce()以提供備用值:coalesce(outputs('Get_item')?['body/title'], 'Untitled')。 - 在轉換前驗證資料型別:
if(isInt(variables('input')), int(variables('input')), 0)。
提示
了解一個具備空安全處理功能的表達式圖樣函式庫,請參考 Expression 雲端流程的食譜。
相關資訊: InvalidTemplate、 ContentConversionFailed
內容轉換失敗
意思是:流程無法在動作間將資料從一種類型轉換到另一種類型。
常見原因:
- 傳遞一個字串,預期會有一個整數或布林
- 將陣列傳送到一個預期單一物件的動作
- 以意料之外格式呈現日期字串(例如,
DD/MM/YYYY當MM/DD/YYYY是預期) - 傳遞給文字輸入的二進位內容(檔案)
如何修復:
- 檢查失敗動作的輸入,查看執行紀錄。 將實際值型態與動作預期的值做比較。
- 使用明確的轉換函數:
int(),float()string()bool()json()。 - 約會時,請使用
parseDateTime()明確的地點或formatDateTime()在通過前進行正規化。 - 對於陣列,如果下游動作預期一個值,則用來
first()提取單一項目。
相關資訊: ExpressionEvaluationFailed
連線與認證錯誤
這些錯誤發生在流程無法與已連接的服務進行認證時。
InvalidConnection
意義:流程中的連接參考指向一個連線已中斷、刪除或過期。
常見原因:
- 建立連線的使用者更改了密碼或重設了多重認證
- 該連線已從連接頁面刪除
- 一位管理員透過 Power Platform 管理中心移除了連線
- 這個流程被匯入一個沒有連結的環境
如何修復:
- 在編輯模式開啟流程。 連線中斷的動作會顯示警告圖示。
- 選擇動作並選擇 更改連線 或 新增連線。
- 請使用適當的帳號登入,建立新的連線。
- 儲存並測試工作流程。
這很重要
對於生產流程,建議使用服務主體連線而非個人使用者連線。 服務主體連線不會在使用者更改密碼或離開組織時失效。
相關資訊: ConnectionNotConfigured、 ConnectionAuthorizationFailed
ConnectionNotConfigured
意義:一個動作需要連線,但未被選擇。
常見原因:
- Flow 是從解決方案匯入,且連線參考沒有被映射
- 新增了一個動作,但連接步驟被跳過了
- 連線參考指向一個沒有值的環境變數
如何修復:
- 在編輯模式下開啟流程,找到帶有連線警告的動作。
- 從下拉選單選擇現有連線,或建立一個新的連線。
- 關於解決方案流程,請前往「解決方案>預設解決方案>連線參考」。
- 為每個參考設定連線。
相關資訊: InvalidConnection
未經授權 (401)
意義:API 拒絕了請求,因為認證權杖無效或過期。
常見原因:
- OAuth 代幣過期了,連線無法自動刷新
- 使用者的帳號被停用或密碼被更改
- 服務負責人秘密或證書已過期
- 條件存取政策阻擋了登入(地理、裝置相容性)
如何修復:
- 請前往 Power Automate>Connections,找到失敗動作所使用的連線。
- 如果連線出現警告,請選擇 「修復連線 」並重新驗證。
- 對於服務主體連線,請在 Microsoft Entra ID 中輪換該秘密並更新連線。
- 檢查Microsoft Entra ID登入日誌中的條件存取封鎖:Azure portal>Microsoft Entra ID>登入日誌,並依應用程式名稱篩選。
禁止 (403)
這代表什麼:經過認證的使用者或應用程式沒有執行該請求操作的權限。
常見原因:
- DLP(資料遺失防止)政策在此環境中阻擋連接器或連接器動作
- 使用者對目標資源缺乏權限(例如,無法寫入 SharePoint list 的權限)
- 管理員透過租戶層級設定限制了連接器
- 連接器需要高級授權,且使用者使用有種子方案
如何修復:
- 檢查 DLP 政策: Power Platform 管理中心>的資料政策。 尋找能阻擋該連接器的政策。
- 確認連線使用者在目標服務上擁有正確的權限(SharePoint 網站權限、Dataverse 安全角色等)。
- 如果是高級接頭的問題,請確認流程擁有者或呼叫者是否有 Power Automate Premium 授權。
- 如果需要修改 DLP 政策,請聯絡你的管理員。
連線授權失敗
意義:連線存在,但其儲存的憑證不再有效。
常見原因:
- 使用者更改密碼或重設多重因素驗證方法
- OAuth 刷新令牌過期(連線未使用超過 90+ 天常見)
- 管理員撤銷了 Microsoft Entra ID 應用程式的同意
- 共用連線被擁有者取消共享
如何修復:
- 開啟 Power Automate>Connections。
- 找出受影響的連線。
- 選擇連線,然後選擇 「固定連線 」重新驗證。
- 如果使用共用連線,請請求連線擁有者重新分享。
- 對於服務帳號,設定行事曆提醒,在憑證過期前輪換。
提示
在 Fix 雲端流 中,找到依連接器(SharePoint、Outlook、SQL Server、Dataverse、HTTP)分類的連線問題詳細教學。
連接器與 API 錯誤
這些錯誤來自流所呼叫的下游服務。
行動失敗
意義:某個動作回傳失敗狀態。 這是通用包裝。 實際的錯誤細節則在動作的輸出本體中。
常見原因:
- 下游 API 回傳 4xx 或 5xx 錯誤
- 一個子流程(透過「執行子流程」呼叫)失敗
- 一個自訂連接器回傳了意想不到的回應格式
- 動作的配置-執行-後設定導致它在先前失敗後才執行
如何修復:
- 打開失敗的執行並選擇失敗的動作。
- 展開 輸出 以顯示 API 的實際錯誤訊息與狀態碼。
- 根據特定 API 錯誤修正根本問題(請參考本參考文獻中的 400、401、403 和 404 條目)。
- 如果動作在先前動作失敗後仍應該執行,請檢查它的 「設定後設定執行 」。
相關資訊: BadRequest(400)、 NotFound(404)
壞請求 (400)
意義:連接器 API 拒絕了請求,因為輸入資料格式錯誤或無效。
常見原因:
- 傳送錯誤資料型態的欄位(字串而非數字,或反過來)
- 請求主體缺少的必填欄位
- 檔案名稱或清單項目標題中的無效字元
- 超過欄位長度限制(例如 SharePoint 單行文字 = 255 字元
如何修復:
- 打開執行紀錄中的失敗動作,查看 輸入區塊 ,清楚顯示傳送了什麼。
- 將輸入與 API 預期的架構做比較(請參考連接器文件)。
- 用 清除使用者輸入
replace(),去除無效字元後再傳入動作。 - 使用
substring()或take()將長值截斷到場的最大長度。
相關資訊: ActionFailed、 ContentConversionFailed
未尋獲(404)
意義:動作試圖存取的資源不存在。
常見原因:
- SharePoint list、函式庫或網站被重新命名或刪除
- 一個 Outlook 資料夾或 Teams 頻道被移除了
- 流程會參考一個已不存在的資源的硬編碼 ID
- Dataverse 的表格或列被其他程序刪除
如何修復:
- 檢查該資源是否仍存在於目標服務中。
- 如果它被重新命名,請更新動作以使用新名稱或 ID。
- 盡可能用動態查詢取代硬編碼的 ID(例如,將「Get items」改成過濾器,而非「Get item」用靜態 ID)。
- 新增錯誤處理:在失敗>設定下一個動作執行,並優雅地處理 404。
相關資訊: 行動失敗
觸發錯誤
這些錯誤與流程觸發器未觸發或失敗有關。
觸發條件未達成
意義:觸發器評估了自身狀態,判斷事件不應啟動流程執行。
常見原因:
- 觸發條件表達式總是會被評估為假(邏輯錯誤)
- 觸發條件會參考一個不存在於觸發有效載荷中的欄位
- 事件發生了,但資料與篩選條件不符(例如「當項目被建立時」狀態條件,但狀態是空白)
如何修復:
- 到觸發器的 設定 ,檢視觸發條件表達式。
- 以已知事件有效載荷測試條件。 在觸發器上使用 Peek 程式碼 來顯示原始結構。
- 暫時移除條件,手動觸發流程,並檢查觸發輸出以驗證欄位名稱和值。
- 修正表達式並重新啟用條件。
相關資訊: ExpressionEvaluationFailed
逾時與限速錯誤
這些錯誤發生在流程或動作超過時間或速率限制時。
行動時間過時
意義:單一動作超過設定的超時時間而被取消。
常見原因:
- HTTP 動作呼叫一個預設 100 秒逾時的慢速外部 API
- 「等待核准」並標示過期
- 在緩慢連線下上傳或下載大型檔案
- Dataverse 查詢回傳過多列且未分頁
如何修復:
- 打開動作 設定 並增加 逾時 值(例如 ISO 8601 持續時間,
PT5M為 5 分鐘)。 - 對於 HTTP 動作,檢查外部 API 是否有長期執行的操作模式(輪詢並重試後)。
- 對於 Dataverse,加入
$filter和$top以減少結果集。 - 對於核准,設定合理的到期期限,並新增一個超時分支來處理未回應的情況。
相關資訊: OperationTimedOut
作業時限過
意義:一項長時間執行的操作(webhook wait、approved 、HTTP polling)超過了最大等待時間。
常見原因:
- HTTP webhook 動作等待回調,但從未出現
- 批准行動無過期,達到30天的流程限制
- 「延遲至」動作設定在超過30天運行期限的日期
- 外部服務中斷,從未收到預期的回覆
如何修復:
- 一定要在 webhook 和審核動作上設定明確的逾時。
- 對於 HTTP webhook 動作,可以實作一個逾時分支,並設定 Configure run after>has timed out。
- 將長時間等待分成較短的段落,使用每日檢查的循環。
- 對於 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在 Get items 上執行動作,而不是在迴圈裡篩選。 - 對於大型資料集,請使用分頁標記或日期範圍,將工作分批處理於多個流程執行中。
- 考慮用
SelectORFilter array動作代替Apply to Each只需要轉換或過濾資料時。
相關資訊: FlowRunQuotaExceeded
FlowRunQuotaExceeded
意義:流或租戶超過其每日行動執行限制。
常見原因:
- 種子/免費授權:每位使用者每天 6,000 次操作
- 高級授權:每位使用者每日 40,000 次操作
- 流程授權:每個流程每天 250,000 次操作
- 一個循環密集的流程,每次執行會消耗數千個動作
如何修復:
- 請在 Power Platform 管理中心查詢目前使用情況>Analytics>Power Automate。
- 優化流程以減少動作:將「套用」替換為「選擇/篩選」、批次操作、降低輪詢頻率。
- 如果工作負載真的需要更多容量,就升級授權等級。
- 將工作負載分散於多個流程,或安排高流量運行於非尖峰時段。
備註
請參考Power Automate限制與配置,了解更多依授權層級的每日行動限制。
相關資訊: 工作流程執行動作重複配額超過、 DirectApi授權需求
授權錯誤
DirectApiAuthorizationRequired(需 DirectApiAuthorization)
意思是:該流程使用了高級連接器,但呼叫者沒有高級授權。
常見原因:
- 一個包含高級連接器(HTTP、SQL Server、Dataverse、自訂連接器)的流程,由使用者在已種子的 Microsoft 365 授權下執行
- 流量擁有者擁有高級版,但觸發使用者沒有(重要的是來電者執照,而非擁有者)。
- 預定流量的擁有者失去了他們的高級許可證
- 一個上下文內流程與其 Power App 分離,導致其內容脫離上下文
如何修復:
- 找出哪個連接器需要使用高級服務。 錯誤訊息通常會標明它。
- 將 Power Automate Premium 授權分配給觸發或執行流程的使用者。
- 對於排程或自動化流程,請確保流程擁有者擁有高級授權。
- 考慮程序授權(逐流程)是否對高流量共享流程更具成本效益。
相關資訊:禁止(403),FlowRunQuotaExceeded
快速參考表
| 錯誤 | 類別 | 最有可能的解決方法 |
|---|---|---|
| InvalidTemplate | 設計時間 | 修正表達式語法 |
| ExpressionEvaluationFailed | 執行階段 | 新增空檢查、驗證類型 |
| 行動失敗 | 執行階段 | 檢查動作輸出是否有 API 錯誤 |
| FlowCheckerError | 設計時間 | 填寫必填欄位,修正連接 |
| InvalidConnection | 連線 | 重新驗證連線 |
| ConnectionNotConfigured | 連線 | 選取或建立連線 |
| 未經授權 (401) | Auth | 修復連線,輪換憑證 |
| 禁止 (403) | Auth | 檢查 DLP 政策和權限 |
| 壞請求 (400) | API | 驗證輸入資料格式 |
| 未尋獲(404) | API | 確認資源存在,更新參考資料 |
| 觸發條件未達成 | 觸發程序 | 回顧觸發條件表達 |
| 行動時間過時 | 逾時 | 在動作設定中增加超時 |
| 重複行動名稱 | 設計時間 | 重新命名其中一個重複動作 |
| 缺少必需物品 | 設計時間 | 填寫必填欄位 |
| 內容轉換失敗 | 執行階段 | 使用明確型別轉換 |
| WorkflowRunActionRepetitionQuotaExceeded | Throttling | 迴圈前過濾資料 |
| DirectApiAuthorizationRequired(需 DirectApiAuthorization) | 授權 | 將高級授權分配給來電者 |
| FlowRunQuotaExceeded | Throttling | 優化動作次數,升級授權 |
| 連線授權失敗 | 連線 | 修復連線,重新認證 |
| 作業時限過 | 逾時 | 設定明確的逾時時間,使用中繼模式 |
相關資訊
註:本文作者在 AI 協助下撰寫。 深入了解