5 min給工具使用者

Presenton 匯入自訂 PPT 模板出現 504,先分清逾時與處理失敗

Presenton 匯入自訂 PPTX 出現 504 時,先核對失敗請求與後端紀錄,再用一頁副本縮小範圍。附版本、字型、入口與任務狀態回報欄位。

Aaron Huang系統、產品與 AI 實作

Presenton 匯入自訂 PPT 模板出現 504,先分清逾時與處理失敗

Presenton 匯入自訂 PPT 模板出現 504 時,先保存失敗請求與同一時段的後端紀錄,再決定要查哪一層。504 表示閘道或代理等不到上游回應;單靠這個狀態碼,還無法判斷模板處理最後有沒有完成。HTTP 504 定義

本文整理公開問題回報與官方文件,提供自架使用者一份診斷順序,沒有進行實機重現。使用 Cloud 或非自己管理的伺服器時,記下畫面與發生時間即可,把伺服器部分交給管理者。官方回報指引

先看失敗停在哪一步

官方模板流程把字型確認、來源投影片預覽、建立模板和等待版面生成分成不同步驟。因此,預覽請求得到 200,也只能按該請求的內容判讀;整份模板是否完成,還要看後續生成狀態及實際版面。Template creation

Issue #816 的回報者曾在字型步驟後遇到 504。他提供的案例是 12 頁、約 2.36 MB,約 63 秒出錯;同份檔案刪到一頁後能成功。他也表示瀏覽器顯示 504 時,後端看得到 200。這些是單一案例的觀察,沒有證明字型損壞,也不能拿來訂出頁數或檔案大小上限。

維護者要求確認的重點,是後端在閘道逾時後是否仍完成渲染。接下來的檢查沿用這個分界,補上避免把不同請求混在一起的記錄方式。

用同一次操作對照瀏覽器與後端

先記下按下 Continue 的時間與時區。在瀏覽器開發者工具的 Network 找到失敗請求,保存方法、路徑、耗時、狀態碼與錯誤回應;如果有 request ID,一起留下。#816 中要求核對的是 fonts-upload-and-slides-preview,實際名稱仍以你的版本為準。原始診斷提問

以下是整理紀錄時的判讀方法,不是經過本次測試的修復結果。

看到的紀錄 目前能判斷什麼 下一步
瀏覽器 504,稍後能對上同一預覽請求的後端完成紀錄 優先檢查代理等待時間與預覽耗時 核對回應內容、預覽是否齊全,以及後續模板生成狀態
瀏覽器 504,後端出現明確渲染錯誤或程序異常結束 有處理失敗的證據 保存錯誤前後文,以小型副本縮小重現範圍
日誌有 200,但來自登入狀態、字型檢查或其他請求 尚不能對應這次失敗 按請求路徑、時間與 request ID 重新配對
找不到完成或失敗紀錄 狀態仍未知 註明觀察到哪個時間點,交管理者確認任務及資源狀態

管理者可對照代理與應用程式日誌,保留操作前後的時間範圍。不同機器的時區或時鐘有差異時,先註明差值;沒有 request ID,就使用時間、路徑及單次操作範圍縮小比對。不要只截出一行 200 當作成功證據。

留一頁做最小重現

先保存原檔,在副本中留下有代表性的一頁,移除機密文字、備註、公司標誌與其他私人內容。保留需要比較的版面及字型,記錄原檔與副本各自的頁數、大小和結果;如果去識別後症狀消失,也如實記下。

先用相同版本與入口比較完整檔和一頁檔。若一頁成功,再逐步加入頁面,直到找出能重現的最小範圍。每次只改一個條件,避免同時換字型、換版本又改代理,最後無法知道哪個變動影響結果。這是本文建議的縮小範圍方法;一頁成功只能說明兩份輸入的結果不同。

測試前也要確認目前的 provider 與資料流向。自架環境仍可能把內容交給外部模型,不應為了重現而上傳公司簡報或未獲准分享的字型。Gwarket 的自架資料邊界說明

查出逾時層,再談調整

記錄瀏覽器到 Presenton 之間有哪些入口,例如反向代理、CDN 或 tunnel,讓管理者確認是哪一層回傳 504。不要為測試而把內部連接埠開到公網,或關掉既有驗證。

約一分鐘出錯可以提供線索,但時間相近不足以認定某個設定。以 Nginx 的 proxy_read_timeout 為例,它限制兩次讀取上游回應之間的等待時間,並非整個回應的總時長上限;仍須核對實際生效設定。Nginx 官方文件

延長等待時間的測試,應由管理者在確認逾時層後安排。驗收時要看同一份最小範例能否走完需要的流程,並保留調整前後紀錄。畫面不再跳 504,還不足以確認版面生成與匯出都正常。

截至 2026 年 10 月 11 日,PR #941 仍顯示 Open。它提出以受限並行的單頁任務處理預覽;這是待合併的變更提案,不能當成某個正式版本已修好的證據。若後續考慮升級,先查對應部署版本的 release notes,備份並在測試環境驗證。官方升級前檢查

交給管理者或上游的問題包

以下欄位可直接複製。未知就填未知,不用補猜測值。

  • 環境與版本 Cloud/桌面/自架;Presenton 版本或 image tag;作業系統與瀏覽器
  • 入口 是否經過代理、CDN 或 tunnel;只描述結構,不填公開可連的內網位址
  • 檔案 原檔/最小副本的頁數與大小;字型名稱;是否需另外提供字型
  • 重現步驟 哪一步開始、預期結果、實際錯誤;曾成功時的已知條件
  • 時間與請求 發生時間及時區;方法與路徑;耗時、HTTP 狀態、request ID(如有)
  • 後端結果 是否對上同一次請求;最後觀察時間;完成、失敗或仍未知;任務/模板狀態
  • 資源與已試項目 CPU/記憶體限制及當時用量(若可取得);每次變動與結果
  • 可分享材料 去識別的小型範例、必要日誌片段與錯誤截圖;不能分享的部分註明省略

送出前逐項移除 API key、Cookie、授權標頭、簽名網址及私人資料。完整 HAR、環境檔或生產日誌可能含有這些內容,不要直接附上。公開 GitHub 問題只放可公開的最小材料;無法安全提供原檔,就先交文字紀錄。官方安全回報要求