fix(gemini): 라우트 정리(deleteFile)를 응답에서 분리
finally 에서 await fileManager.deleteFile(...) 가 catch 의 return 을 게이팅해, 정리용 네트워크 호출이 행되면 500 응답조차 클라이언트로 송신되지 않던 문제를 해소한다. - deleteFile 을 await 하지 않고 fire-and-forget + .catch 로 분리해 응답을 정리 완료에 묶지 않음 - 상주 Node 서버(PM2 next start)이므로 응답 후에도 detached 삭제가 정상 완료되며, 미삭제 시에도 Gemini 측에서 자동 만료 - 클라이언트 120s 타임아웃과 짝을 이뤄 한쪽이 행되어도 스피너에 갇히지 않음 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
49b2d0940f
commit
654b8d6e08
@ -225,11 +225,11 @@ export async function POST(req) {
|
||||
return NextResponse.json({ error: { code: 'GEMINI_FAILED', message: error?.message || 'Gemini 호출에 실패했습니다.' } }, { status: 500 })
|
||||
} finally {
|
||||
if (uploadedFileName) {
|
||||
try {
|
||||
await fileManager.deleteFile(uploadedFileName)
|
||||
} catch (deleteError) {
|
||||
// temp 파일 삭제는 응답을 지연시키지 않도록 await 하지 않고 분리(fire-and-forget)한다.
|
||||
// 정리용 네트워크 호출이 행(hang)되더라도 클라이언트 응답이 막히지 않는다(미삭제 시 Gemini 측에서 자동 만료).
|
||||
fileManager.deleteFile(uploadedFileName).catch((deleteError) => {
|
||||
logger.warn('[gemini/floor-plan] deleteFile failed', deleteError?.message || deleteError)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user