From acdc197b7e5e3e8f83774589bccf52512ea9c144 Mon Sep 17 00:00:00 2001 From: 134 Date: Sun, 5 Jul 2026 13:17:03 +0800 Subject: [PATCH] fix: fall back when scale reference upload fails --- app/api/canvas/local-edit/route.ts | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/app/api/canvas/local-edit/route.ts b/app/api/canvas/local-edit/route.ts index 2bb7fff2c..f44d1195a 100644 --- a/app/api/canvas/local-edit/route.ts +++ b/app/api/canvas/local-edit/route.ts @@ -4629,8 +4629,11 @@ export async function POST(request: NextRequest) { ) ) : null; - const scaleAdjustPatchReference = useScaleAdjustPatchWorkflow - ? await createScaleAdjustPatchReference({ + let scaleAdjustPatchReference: ScaleAdjustPatchReference | null = null; + let scaleAdjustPatchReferenceFailed = false; + if (useScaleAdjustPatchWorkflow) { + try { + scaleAdjustPatchReference = await createScaleAdjustPatchReference({ regions, scalePercent, sourceBuffer, @@ -4643,10 +4646,20 @@ export async function POST(request: NextRequest) { isScaleAdjustFurnitureProductLikePrompt(region.prompt) ), userId: session.user.id, - }) - : null; + }); + } catch (error) { + scaleAdjustPatchReferenceFailed = true; + console.warn( + "[Canvas Local Edit] Scale adjust patch reference failed; falling back to source-only coordinate prompt:", + { + error: error instanceof Error ? error.message : String(error), + } + ); + } + } const shouldCreateScaleAdjustCropReferences = isScaleAdjustOperation && + !scaleAdjustPatchReferenceFailed && (!scaleAdjustPatchReference && (useScaleAdjustVisualLayoutGuide || !useScaleAdjustCoordinatePrompt || @@ -4872,6 +4885,7 @@ export async function POST(request: NextRequest) { requestedModel: requestedModel || null, resolvedAspectRatio, scaleAdjustPatchWorkflowApplied: Boolean(scaleAdjustPatchReference), + scaleAdjustPatchReferenceFailed, scaleAdjustPatchForcedForShrink: Boolean(scaleAdjustPatchReference) && hasScaleAdjustShrink, scaleAdjustPatchStructureLockedDraftApplied: @@ -4956,6 +4970,8 @@ export async function POST(request: NextRequest) { : scaleAdjustPatchReference.structureLockedDraft ? "ai-patch-workspace-structure-locked-draft-v87-subject-alpha-clipped-one-shot" : "ai-patch-workspace-draft-v75-soft-wipe-erase-ghost-one-shot" + : scaleAdjustPatchReferenceFailed + ? "source-only-coordinate-fallback-after-reference-upload-failure-v1-one-shot" : useScaleAdjustEditMask ? "mask-edit-gpt-image-2-scale-shrink-v74-one-shot" : useFalScaleAdjustCoordinatePrompt