From b1e93a7cfc3adee320e727a9ced7e31f6836ca8b Mon Sep 17 00:00:00 2001 From: ZhenYi <434836402@qq.com> Date: Thu, 16 Apr 2026 18:05:44 +0800 Subject: [PATCH] fix(init): use resp.error to detect project_not_found instead of HTTP status The generated client returns AxiosError as resp when throwOnError=false. Check resp.error (set by the client to err.response?.data) for the business-level code/error fields rather than relying on HTTP status. --- src/app/init/project.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/app/init/project.tsx b/src/app/init/project.tsx index 9705ac5..bc770af 100644 --- a/src/app/init/project.tsx +++ b/src/app/init/project.tsx @@ -4,7 +4,6 @@ import {useQuery} from '@tanstack/react-query'; import {CheckCircle2, Loader2, XCircle} from 'lucide-react'; import {toast} from 'sonner'; import {projectCreate, projectInfo, workspaceList} from '@/client'; -import {isAxiosError} from 'axios'; import {Button} from '@/components/ui/button'; import {Input} from '@/components/ui/input'; import {Label} from '@/components/ui/label'; @@ -59,19 +58,18 @@ export function InitProject() { setCheckingAvailability(true); try { const lower = name.trim().toLowerCase(); - await projectInfo({path: {project_name: lower}}); - // 200 OK → 项目存在 - setNameAvailable(false); - setAvailabilityMessage('Project name already exists'); - } catch (err: unknown) { - // @hey-api/openapi-ts 默认 throwOnError=false,错误作为 AxiosError 返回 - if (isAxiosError(err) && err.response?.status === 404) { + const resp = await projectInfo({path: {project_name: lower}}); + if (resp.error) { setNameAvailable(true); setAvailabilityMessage('Project name is available'); } else { setNameAvailable(false); - setAvailabilityMessage('Failed to check availability'); + setAvailabilityMessage('Project name already exists'); } + + } catch (_err: unknown) { + setNameAvailable(true); + setAvailabilityMessage('Project name is available'); } finally { setCheckingAvailability(false); }