Skip to content

Errors And Progress

Errors include classes, names, and stable metadata codes.

ts
try {
  await client.images.inpaint({
    provider: 'google',
    model: 'gemini-3.1-flash-image-preview',
    prompt: 'Edit this image',
    image,
    mask,
  });
} catch (error) {
  if (error instanceof ImageLibraryError) {
    console.log(error.metadata.code);
  }
}

Common codes:

CodeMeaning
CAPABILITY_PIXEL_MASK_UNSUPPORTEDPixel masks sent to a model without mask support
MASK_DIMENSION_MISMATCHMask size differs from base image
MASK_MISSING_ALPHAPNG mask lacks alpha
AUTHENTICATION_FAILEDMissing or invalid API key
RATE_LIMITEDProvider returned 429
SAFETY_BLOCKEDProvider safety/moderation block
TIMEOUTRequest timeout
FALLBACK_EXHAUSTEDAll candidates failed

Progress callbacks are best-effort operational events, not image streaming:

ts
await client.images.edit({
  prompt: 'Change the product background',
  inputImages,
  onProgress(event) {
    console.log(event.type);
  },
});

Events include started, provider-request, retry, fallback, and completed.

Retry events include cumulative elapsed time:

ts
onProgress(event) {
  if (event.type === 'retry') {
    console.log(event.attempt, event.elapsedMs, event.reason);
  }
}