nexu-io/open-design · error · Error
Vela model ${wireModel} is not in the published image catalo
Error message
Vela model ${wireModel} is not in the published image catalogue, so quality ${requestedQuality} cannot be requested What it means
Thrown near the top of renderVelaImage when a quality tier was requested and the catalogue fetch was performed but the model was not found in the published image catalogue (published is null). This differs from error 490 (model found, no quality capability) and error 491 (tier not in list): here the model itself is absent from the `vela media models` output, so its capabilities are entirely unknown.
Source
Thrown at apps/daemon/src/media/vela.ts:356
const edits = input.imageRefs.length > 0;
const requestedQuality = input.quality?.trim();
// One catalogue read serves both the output profile and the quality tier.
// Skip it entirely when the caller named neither, so an unqualified request
// still costs exactly one CLI spawn.
const published = input.aspect?.trim() || requestedQuality
? await fetchPublishedImageCapabilities(input, edits, wireModel, runCommand)
: null;
const profile = selectImageOutputProfile(
published,
input.aspect?.trim() || undefined,
input.resolution?.trim() || undefined,
wireModel,
);
const quality = requestedQuality && published
? qualityArgs(requestedQuality, published, wireModel)
: [];
if (requestedQuality && !published) {
throw new Error(
`Vela model ${wireModel} is not in the published image catalogue, so quality ${requestedQuality} cannot be requested`,
);
}
const tempDir = await mkdtemp(path.join(os.tmpdir(), 'open-design-vela-image-'));
const outputPath = path.join(tempDir, 'result.bin');
try {
const stagedImageRefs = await stageInputImages(input.imageRefs, tempDir);
const command = edits ? 'edit' : 'gen';
const args = [
'image',
command,
'--model',
wireModel,
'--prompt',
input.prompt,
...stagedImageRefs.flatMap((image) => ['--image', image.abs]),
...(profile
? ['--aspect-ratio', profile.aspectRatio, '--resolution', profile.resolution]View on GitHub (pinned to 5be4028344)
Solutions
- Omit input.quality if the model legitimately lacks catalogue metadata
- Verify the model id appears in `vela media models --json` with kind 'image'
- Correct the model/wireModel alias so it matches a catalogue entry
- If the model should be in the catalogue, provision or report it to Vela
Example fix
// before
await renderVelaImage({ ...input, model: 'vela/unknown-model', quality: 'high' });
// after
await renderVelaImage({ ...input, model: 'vela/known-model', quality: 'high' }); Defensive patterns
Strategy: validation
Validate before calling
function modelInCatalogue(published: VelaPublishedImageCapabilities | null): boolean {
return published != null;
}
if (requestedQuality && !modelInCatalogue(published)) {
// drop quality, or correct the model id
} Try / catch
try {
const result = await renderVelaImage(input);
} catch (err) {
if (err instanceof Error && /not in the published image catalogue/.test(err.message)) {
// verify model id via `vela media models --json`, then drop quality or fix the id
} else throw err;
} Prevention
- Verify the model id appears in `vela media models --json` with kind 'image' before allowing quality selection
- Do not request quality for models whose catalogue presence is unconfirmed
- Validate model/wireModel aliasing so the catalogue lookup matches
When it happens
Trigger: input.quality is set, which triggers fetchPublishedImageCapabilities; the returned published is null because parsePublishedProfiles found no matching model entry (model + kind=image) in the catalogue. The qualityArgs guard is skipped, and this explicit guard fires.
Common situations: Model id is wrong or not yet provisioned in the catalogue; model was removed; the wireModel aliasing produced an id the catalogue does not contain; catalogue fetch was for edits but model only publishes generations.
Related errors
- Vela model ${wireModel} does not publish a quality capabilit
- Vela model ${wireModel} does not publish quality ${tier}; su
- authorized pull receipt has invalid ${key}
- authorized pull response must be an object
- Vela media accepts at most ${VELA_MAX_INPUT_IMAGES} input im
AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12).
Data as JSON: /api/errors/927ed1a6b8a281e6.
Report an issue: GitHub.