雲流錯誤代碼參考

利用本文來排查 Power Automate 雲端流程中最常見的錯誤。 每篇文章都說明錯誤的意義、發生原因以及如何修正。

備註

此參考適用於所有 Power Automate 雲端流程授權層級。 在 「故障排除桌面流程錯誤」中,了解桌面流程特有的錯誤。

設計時錯誤

這些錯誤發生在你儲存、驗證或發布流程時。

InvalidTemplate

意義:流程定義包含表達式或動作配置中的語法錯誤。

常見原因

  • 表達式中的不匹配括號或引號
  • 引用不存在的動作輸出(動作名稱中打錯字)
  • 使用參數數量錯誤的函數(例如 createArray() ,沒有參數)
  • 常數表達式中的型別不匹配(例如, int('abc')div(100, 0))——引擎會在節省時間時驗證這些
  • 從包含隱形 Unicode 字元的文件中複製貼上表達式

如何修復

  1. 在設計器中以紅色標示的動作開啟。
  2. 檢查公式欄裡的表達式。 尋找未配對 ()' 角色。
  3. 驗證表達式中的動作名稱完全相同(大小寫區分): outputs('Get_item') 不是 outputs('Get Item')
  4. 如果表達式看起來正確,刪除並手動重新輸入以移除隱藏字元。

提示

表達式中的動作名稱使用底線而非空格。 如果你的動作名為「取得物品」,則表達式參考為 outputs('Get_item')

相關資訊: ExpressionEvaluationFailedFlowCheckerError

FlowCheckerError

意義:流程檢查器發現了一個或多個驗證問題,導致無法儲存。

常見原因

  • 一個必要欄位在一個或多個動作中為空
  • 連接埠不會被選中用於接頭動作
  • 一個表達式參考來自平行分支的動態內容值(不保證會存在)
  • 觸發輸入不完整

如何修復

  1. 選擇設計器頂端的錯誤橫幅,即可顯示完整的問題清單。
  2. 選取每個錯誤以導航到受影響的動作。
  3. 填寫必需欄位、修正失效的表達式,並選擇連接。
  4. 再存檔一次。 存檔時檢查器會自動執行。

相關資訊: InvalidTemplateMissingRequiredProperty

重複行動名稱

意義:流程中兩個或以上的動作內部名稱相同。

常見原因

  • 複製貼上動作而不重新命名
  • 匯入一個手動編輯並重複鍵的流程定義
  • 將一個動作重新命名為同範圍中另一個動作已使用的名稱

如何修復

  1. 在流程中搜尋名稱相同的動作(也檢查內部 Apply to EachScope 容器)。
  2. 重新命名其中一個重複的。 選擇動作中的 ... 選單,然後選擇 重新命名
  3. 更新任何引用已命名動作的表達式: outputs('Old_Name')outputs('New_Name')

相關資訊: InvalidTemplate

缺少必需物品

意義:動作或觸發器上的必填欄位為空。

常見原因

  • 新增連接器動作但未完成設定
  • 解決為空的動態內容代幣被用於必填欄位
  • 從未設定環境變數的解決方案匯入流程

如何修復

  1. 開啟動作時會被標記錯誤。
  2. 請尋找標有紅色星號(*)且為空白的欄位。
  3. 填寫所需值,可以用靜態文字或動態內容標記。
  4. 對於解決方案流程,檢查所有環境變數是否在目標環境中都有值。

相關資訊: FlowCheckerError

執行時表達式錯誤

這些錯誤發生在流程執行時,表達式無法被評估。

ExpressionEvaluationFailed

意義:

某個表達式在執行時未能評估,是因為實際資料與表達式的預期不符。 這個錯誤只發生在表達式使用了無法在儲存時檢查的 動態值 (變數、觸發體、動作輸出)。

備註

若表達式僅使用常數值(如 int('abc')div(100, 0)),流程引擎會在儲存時將錯誤標記為 InvalidTemplate

常見原因

  • int()在執行時呼叫包含非數字字串的變數
  • 存取空物件上的屬性(outputs('Get_item')?['body/title'] 當Get_item沒有回傳任何東西)
  • 格式來自變數時的日期格式不符formatDateTime()parseDateTime()
  • 除以零,當除數是動態值且恰好為0時

如何修復

  1. 打開失敗的執行並選擇失敗的動作以顯示表達式和輸入值。
  2. 用空檢查包裹風險表達式: if(empty(triggerBody()?['value']), 'default', triggerBody()?['value'])
  3. coalesce() 以提供備用值: coalesce(outputs('Get_item')?['body/title'], 'Untitled')
  4. 在轉換前驗證資料型別: if(isInt(variables('input')), int(variables('input')), 0)

提示

了解一個具備空安全處理功能的表達式圖樣函式庫,請參考 Expression 雲端流程的食譜。

相關資訊: InvalidTemplateContentConversionFailed

內容轉換失敗

意思是:流程無法在動作間將資料從一種類型轉換到另一種類型。

常見原因

  • 傳遞一個字串,預期會有一個整數或布林
  • 將陣列傳送到一個預期單一物件的動作
  • 以意料之外格式呈現日期字串(例如, DD/MM/YYYYMM/DD/YYYY 是預期)
  • 傳遞給文字輸入的二進位內容(檔案)

如何修復

  1. 檢查失敗動作的輸入,查看執行紀錄。 將實際值型態與動作預期的值做比較。
  2. 使用明確的轉換函數:int()float()string()bool()json()
  3. 約會時,請使用 parseDateTime() 明確的地點或 formatDateTime() 在通過前進行正規化。
  4. 對於陣列,如果下游動作預期一個值,則用來 first() 提取單一項目。

相關資訊: ExpressionEvaluationFailed

連線與認證錯誤

這些錯誤發生在流程無法與已連接的服務進行認證時。

InvalidConnection

意義:流程中的連接參考指向一個連線已中斷、刪除或過期。

常見原因

  • 建立連線的使用者更改了密碼或重設了多重認證
  • 該連線已從連接頁面刪除
  • 一位管理員透過 Power Platform 管理中心移除了連線
  • 這個流程被匯入一個沒有連結的環境

如何修復

  1. 在編輯模式開啟流程。 連線中斷的動作會顯示警告圖示。
  2. 選擇動作並選擇 更改連線新增連線
  3. 請使用適當的帳號登入,建立新的連線。
  4. 儲存並測試工作流程。

這很重要

對於生產流程,建議使用服務主體連線而非個人使用者連線。 服務主體連線不會在使用者更改密碼或離開組織時失效。

相關資訊: ConnectionNotConfiguredConnectionAuthorizationFailed

ConnectionNotConfigured

意義:一個動作需要連線,但未被選擇。

常見原因

  • Flow 是從解決方案匯入,且連線參考沒有被映射
  • 新增了一個動作,但連接步驟被跳過了
  • 連線參考指向一個沒有值的環境變數

如何修復

  1. 在編輯模式下開啟流程,找到帶有連線警告的動作。
  2. 從下拉選單選擇現有連線,或建立一個新的連線。
  3. 關於解決方案流程,請前往「解決方案>預設解決方案>連線參考」。
  4. 為每個參考設定連線。

相關資訊: InvalidConnection

未經授權 (401)

意義:API 拒絕了請求,因為認證權杖無效或過期。

常見原因

  • OAuth 代幣過期了,連線無法自動刷新
  • 使用者的帳號被停用或密碼被更改
  • 服務負責人秘密或證書已過期
  • 條件存取政策阻擋了登入(地理、裝置相容性)

如何修復

  1. 請前往 Power Automate>Connections,找到失敗動作所使用的連線。
  2. 如果連線出現警告,請選擇 「修復連線 」並重新驗證。
  3. 對於服務主體連線,請在 Microsoft Entra ID 中輪換該秘密並更新連線。
  4. 檢查Microsoft Entra ID登入日誌中的條件存取封鎖:Azure portal>Microsoft Entra ID>登入日誌,並依應用程式名稱篩選。

相關資訊:禁止(403)、連線授權失敗

禁止 (403)

這代表什麼:經過認證的使用者或應用程式沒有執行該請求操作的權限。

常見原因

  • DLP(資料遺失防止)政策在此環境中阻擋連接器或連接器動作
  • 使用者對目標資源缺乏權限(例如,無法寫入 SharePoint list 的權限)
  • 管理員透過租戶層級設定限制了連接器
  • 連接器需要高級授權,且使用者使用有種子方案

如何修復

  1. 檢查 DLP 政策: Power Platform 管理中心>的資料政策。 尋找能阻擋該連接器的政策。
  2. 確認連線使用者在目標服務上擁有正確的權限(SharePoint 網站權限、Dataverse 安全角色等)。
  3. 如果是高級接頭的問題,請確認流程擁有者或呼叫者是否有 Power Automate Premium 授權。
  4. 如果需要修改 DLP 政策,請聯絡你的管理員。

相關資訊:未授權(401),DirectApi授權需求

連線授權失敗

意義:連線存在,但其儲存的憑證不再有效。

常見原因

  • 使用者更改密碼或重設多重因素驗證方法
  • OAuth 刷新令牌過期(連線未使用超過 90+ 天常見)
  • 管理員撤銷了 Microsoft Entra ID 應用程式的同意
  • 共用連線被擁有者取消共享

如何修復

  1. 開啟 Power Automate>Connections
  2. 找出受影響的連線。
  3. 選擇連線,然後選擇 「固定連線 」重新驗證。
  4. 如果使用共用連線,請請求連線擁有者重新分享。
  5. 對於服務帳號,設定行事曆提醒,在憑證過期前輪換。

提示

Fix 雲端流 中,找到依連接器(SharePoint、Outlook、SQL Server、Dataverse、HTTP)分類的連線問題詳細教學。

相關資訊: 無效連線未授權(401)

連接器與 API 錯誤

這些錯誤來自流所呼叫的下游服務。

行動失敗

意義:某個動作回傳失敗狀態。 這是通用包裝。 實際的錯誤細節則在動作的輸出本體中。

常見原因

  • 下游 API 回傳 4xx 或 5xx 錯誤
  • 一個子流程(透過「執行子流程」呼叫)失敗
  • 一個自訂連接器回傳了意想不到的回應格式
  • 動作的配置-執行-後設定導致它在先前失敗後才執行

如何修復

  1. 打開失敗的執行並選擇失敗的動作。
  2. 展開 輸出 以顯示 API 的實際錯誤訊息與狀態碼。
  3. 根據特定 API 錯誤修正根本問題(請參考本參考文獻中的 400、401、403 和 404 條目)。
  4. 如果動作在先前動作失敗後仍應該執行,請檢查它的 「設定後設定執行 」。

相關資訊: BadRequest(400)NotFound(404)

壞請求 (400)

意義:連接器 API 拒絕了請求,因為輸入資料格式錯誤或無效。

常見原因

  • 傳送錯誤資料型態的欄位(字串而非數字,或反過來)
  • 請求主體缺少的必填欄位
  • 檔案名稱或清單項目標題中的無效字元
  • 超過欄位長度限制(例如 SharePoint 單行文字 = 255 字元

如何修復

  1. 打開執行紀錄中的失敗動作,查看 輸入區塊 ,清楚顯示傳送了什麼。
  2. 將輸入與 API 預期的架構做比較(請參考連接器文件)。
  3. 用 清除使用者輸入 replace() ,去除無效字元後再傳入動作。
  4. 使用 substring()take() 將長值截斷到場的最大長度。

相關資訊: ActionFailedContentConversionFailed

未尋獲(404)

意義:動作試圖存取的資源不存在。

常見原因

  • SharePoint list、函式庫或網站被重新命名或刪除
  • 一個 Outlook 資料夾或 Teams 頻道被移除了
  • 流程會參考一個已不存在的資源的硬編碼 ID
  • Dataverse 的表格或列被其他程序刪除

如何修復

  1. 檢查該資源是否仍存在於目標服務中。
  2. 如果它被重新命名,請更新動作以使用新名稱或 ID。
  3. 盡可能用動態查詢取代硬編碼的 ID(例如,將「Get items」改成過濾器,而非「Get item」用靜態 ID)。
  4. 新增錯誤處理:在失敗>設定下一個動作執行,並優雅地處理 404。

相關資訊: 行動失敗

觸發錯誤

這些錯誤與流程觸發器未觸發或失敗有關。

觸發條件未達成

意義:觸發器評估了自身狀態,判斷事件不應啟動流程執行。

常見原因

  • 觸發條件表達式總是會被評估為假(邏輯錯誤)
  • 觸發條件會參考一個不存在於觸發有效載荷中的欄位
  • 事件發生了,但資料與篩選條件不符(例如「當項目被建立時」狀態條件,但狀態是空白)

如何修復

  1. 到觸發器的 設定 ,檢視觸發條件表達式。
  2. 以已知事件有效載荷測試條件。 在觸發器上使用 Peek 程式碼 來顯示原始結構。
  3. 暫時移除條件,手動觸發流程,並檢查觸發輸出以驗證欄位名稱和值。
  4. 修正表達式並重新啟用條件。

相關資訊: ExpressionEvaluationFailed

逾時與限速錯誤

這些錯誤發生在流程或動作超過時間或速率限制時。

行動時間過時

意義:單一動作超過設定的超時時間而被取消。

常見原因

  • HTTP 動作呼叫一個預設 100 秒逾時的慢速外部 API
  • 「等待核准」並標示過期
  • 在緩慢連線下上傳或下載大型檔案
  • Dataverse 查詢回傳過多列且未分頁

如何修復

  1. 打開動作 設定 並增加 逾時 值(例如 ISO 8601 持續時間, PT5M 為 5 分鐘)。
  2. 對於 HTTP 動作,檢查外部 API 是否有長期執行的操作模式(輪詢並重試後)。
  3. 對於 Dataverse,加入 $filter$top 以減少結果集。
  4. 對於核准,設定合理的到期期限,並新增一個超時分支來處理未回應的情況。

相關資訊: OperationTimedOut

作業時限過

意義:一項長時間執行的操作(webhook wait、approved 、HTTP polling)超過了最大等待時間。

常見原因

  • HTTP webhook 動作等待回調,但從未出現
  • 批准行動無過期,達到30天的流程限制
  • 「延遲至」動作設定在超過30天運行期限的日期
  • 外部服務中斷,從未收到預期的回覆

如何修復

  1. 一定要在 webhook 和審核動作上設定明確的逾時。
  2. 對於 HTTP webhook 動作,可以實作一個逾時分支,並設定 Configure run after>has timed out
  3. 將長時間等待分成較短的段落,使用每日檢查的循環。
  4. 對於 30 天執行限制,建議重新設計長跑程序,採用「中繼」模式:結束當前執行並以 Dataverse 或檔案傳遞狀態的新執行。

這很重要

雲流最長運行時間為30天。 對於耗時較長的程序,可以將它們拆分成多個流程執行,並共享狀態。

相關資訊: ActionTimedOut

WorkflowRunActionRepetitionQuotaExceeded

意義:一個「套用到每個迴圈」超過了最大迭代次數(預設:高級版為 100,000 次,效能設定檔為 5,000 次)。

常見原因

  • 處理大型 SharePoint list 或 Dataverse 表格,但不先篩選
  • 巢狀 Apply to Each 迴圈乘以迭代次數(100 x 100 = 10,000)
  • 一個 Get items 動作,將所有列回傳而非篩選過的子集

如何修復

  1. 在資料來源動作中加入篩選器,以減少迴圈前的項目數量。
  2. 用 OData $filter$topGet items 上執行動作,而不是在迴圈裡篩選。
  3. 對於大型資料集,請使用分頁標記或日期範圍,將工作分批處理於多個流程執行中。
  4. 考慮用 Select OR Filter array 動作代替 Apply to Each 只需要轉換或過濾資料時。

相關資訊: FlowRunQuotaExceeded

FlowRunQuotaExceeded

意義:流或租戶超過其每日行動執行限制。

常見原因

  • 種子/免費授權:每位使用者每天 6,000 次操作
  • 高級授權:每位使用者每日 40,000 次操作
  • 流程授權:每個流程每天 250,000 次操作
  • 一個循環密集的流程,每次執行會消耗數千個動作

如何修復

  1. 請在 Power Platform 管理中心查詢目前使用情況>Analytics>Power Automate
  2. 優化流程以減少動作:將「套用」替換為「選擇/篩選」、批次操作、降低輪詢頻率。
  3. 如果工作負載真的需要更多容量,就升級授權等級。
  4. 將工作負載分散於多個流程,或安排高流量運行於非尖峰時段。

備註

請參考Power Automate限制與配置,了解更多依授權層級的每日行動限制。

相關資訊: 工作流程執行動作重複配額超過DirectApi授權需求

授權錯誤

DirectApiAuthorizationRequired(需 DirectApiAuthorization)

意思是:該流程使用了高級連接器,但呼叫者沒有高級授權。

常見原因

  • 一個包含高級連接器(HTTP、SQL Server、Dataverse、自訂連接器)的流程,由使用者在已種子的 Microsoft 365 授權下執行
  • 流量擁有者擁有高級版,但觸發使用者沒有(重要的是來電者執照,而非擁有者)。
  • 預定流量的擁有者失去了他們的高級許可證
  • 一個上下文內流程與其 Power App 分離,導致其內容脫離上下文

如何修復

  1. 找出哪個連接器需要使用高級服務。 錯誤訊息通常會標明它。
  2. 將 Power Automate Premium 授權分配給觸發或執行流程的使用者。
  3. 對於排程或自動化流程,請確保流程擁有者擁有高級授權。
  4. 考慮程序授權(逐流程)是否對高流量共享流程更具成本效益。

相關資訊:禁止(403),FlowRunQuotaExceeded

快速參考表

錯誤 類別 最有可能的解決方法
InvalidTemplate 設計時間 修正表達式語法
ExpressionEvaluationFailed 執行階段 新增空檢查、驗證類型
行動失敗 執行階段 檢查動作輸出是否有 API 錯誤
FlowCheckerError 設計時間 填寫必填欄位,修正連接
InvalidConnection 連線 重新驗證連線
ConnectionNotConfigured 連線 選取或建立連線
未經授權 (401) Auth 修復連線,輪換憑證
禁止 (403) Auth 檢查 DLP 政策和權限
壞請求 (400) API 驗證輸入資料格式
未尋獲(404) API 確認資源存在,更新參考資料
觸發條件未達成 觸發程序 回顧觸發條件表達
行動時間過時 逾時 在動作設定中增加超時
重複行動名稱 設計時間 重新命名其中一個重複動作
缺少必需物品 設計時間 填寫必填欄位
內容轉換失敗 執行階段 使用明確型別轉換
WorkflowRunActionRepetitionQuotaExceeded Throttling 迴圈前過濾資料
DirectApiAuthorizationRequired(需 DirectApiAuthorization) 授權 將高級授權分配給來電者
FlowRunQuotaExceeded Throttling 優化動作次數,升級授權
連線授權失敗 連線 修復連線,重新認證
作業時限過 逾時 設定明確的逾時時間,使用中繼模式

註:本文作者在 AI 協助下撰寫。 深入了解