DayuanJiang/next-ai-draw-io · error · Error

ModelScope API error (${response.status}): ${errorText}

Error message

ModelScope API error (${response.status}): ${errorText}

What it means

ModelScope validation route proxies a request to the ModelScope API and throws when the upstream responds with a non-OK HTTP status, embedding the status code and raw error text.

Source

Thrown at app/api/validate-model/route.ts:311

                            headers: {
                                "Content-Type": "application/json",
                                Authorization: `Bearer ${apiKey}`,
                            },
                            body: JSON.stringify({
                                model: modelId,
                                messages: [
                                    { role: "user", content: "Say 'OK'" },
                                ],
                                max_tokens: 20,
                                stream: true,
                                enable_thinking: false,
                            }),
                        },
                    )

                    if (!response.ok) {
                        const errorText = await response.text()
                        throw new Error(
                            `ModelScope API error (${response.status}): ${errorText}`,
                        )
                    }

                    const contentType =
                        response.headers.get("content-type") || ""
                    const isValidStreamingResponse =
                        response.status === 200 &&
                        (contentType.includes("text/event-stream") ||
                            contentType.includes("application/json"))

                    if (!isValidStreamingResponse) {
                        throw new Error(
                            `Unexpected response format: ${contentType}`,
                        )
                    }

                    const responseTime = Date.now() - startTime

View on GitHub (pinned to 155ef4f7ac)

Solutions

  1. Check errorText in the message to identify the upstream cause (auth vs model vs quota)
  2. Verify the ModelScope API key and model name are correct and active
  3. Confirm the ModelScope inference endpoint URL matches the current ModelScope docs
  4. Retry after correcting credentials/model; check ModelScope status page for outages
Defensive patterns

Strategy: try-catch

Try / catch

try {
  const r = await fetch('/api/validate-model', { method: 'POST', body })
} catch (e) {
  const m = (e as Error).message
  if (m.includes('401')) promptReenterApiKey()
  else if (m.includes('404')) markModelInvalid()
  else showUpstreamError(m)
}

Prevention

When it happens

Trigger: Calling POST /api/validate-model against a ModelScope endpoint with an invalid/expired API key (401), nonexistent model (404), or malformed request — the upstream error body is surfaced verbatim.

Common situations: Typo in the model ID, ModelScope API token expired, ModelScope changed its endpoint/response contract, or region-specific API restrictions.

Related errors


AI-assisted analysis of DayuanJiang/next-ai-draw-io@155ef4f7ac (2026-08-27). Data as JSON: /api/errors/c412e956a3e3e5bf. Report an issue: GitHub.