Back

Handling responses

AI responses can fail or come back in an unexpected shape. Wrap calls in try/catch, check that you actually got text, and validate JSON before using it.

try {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash",
    contents: prompt,
    config: { responseMimeType: "application/json" },
  })

  const text = response.text
  if (!text) throw new Error("Empty response")

  const data = JSON.parse(text)
  return Response.json(data)
} catch (err) {
  console.error(err)
  return Response.json({ error: "AI request failed" }, { status: 500 })
}

Roadmap