From 1a99a2f26b6e911135d9c31a0f6440510b7fe4d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 2 Oct 2026 22:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=A1=8C=E5=8C=85=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=20HTTP=20=E5=85=9C=E5=BA=95=E5=85=88=E8=BF=87=E6=BB=A4=20messa?= =?UTF-8?q?ge=20=E5=86=8D=E9=80=80=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit read_upload_state / upload_chunk(retryable、fatal) / complete_upload 四处 .or(code).filter 顺序反了 空 message 会把服务端 code 一起吞掉,统一改成 filter(message).or_else(|| code.filter(...)) --- .../src-tauri/src/game_package_upload/runtime.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs b/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs index cc76558c1..7e8920816 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/game_package_upload/runtime.rs @@ -90,8 +90,8 @@ async fn read_upload_state( if status >= 400 { let (code, message) = parse_server_error(status, &body); return Err(message - .or(code) .filter(|detail| !detail.trim().is_empty()) + .or_else(|| code.filter(|detail| !detail.trim().is_empty())) .unwrap_or_else(|| format!("HTTP {status}"))); } let parsed: Value = serde_json::from_str(&body) @@ -145,8 +145,8 @@ async fn upload_chunk( let (code, message) = parse_server_error(status, &text); return Err(ChunkUploadError::Retryable( message - .or(code) .filter(|detail| !detail.trim().is_empty()) + .or_else(|| code.filter(|detail| !detail.trim().is_empty())) .unwrap_or_else(|| format!("HTTP {status}")), )); } @@ -154,8 +154,8 @@ async fn upload_chunk( let (code, message) = parse_server_error(status, &text); return Err(ChunkUploadError::Fatal( message - .or(code) .filter(|detail| !detail.trim().is_empty()) + .or_else(|| code.filter(|detail| !detail.trim().is_empty())) .unwrap_or_else(|| format!("HTTP {status}")), )); } @@ -198,8 +198,8 @@ async fn complete_upload( if status >= 400 { let (code, message) = parse_server_error(status, &text); return Err(message - .or(code) .filter(|detail| !detail.trim().is_empty()) + .or_else(|| code.filter(|detail| !detail.trim().is_empty())) .unwrap_or_else(|| format!("HTTP {status}"))); } let parsed: Value =