nexu-io/open-design · error · Error
Vela model ${wireModel} does not publish resolution ${reques
Error message
Vela model ${wireModel} does not publish resolution ${requestedResolution} at aspect ${aspect}; supported: ${supported.join(', ')} What it means
Thrown by selectImageOutputProfile() when the requested aspect is published but the requested resolution does not match any resolution published at that aspect. matchPublishedValue case-folds, so a mismatch means the resolution value is genuinely unsupported for that aspect. The supported resolutions at that aspect are listed in the error.
Source
Thrown at apps/daemon/src/media/vela.ts:304
if (!aspect) return undefined;
if (!published || published.profiles.length === 0) {
throw new Error(
`Vela model ${wireModel} does not publish output profiles, so aspect ${aspect} cannot be requested`,
);
}
const matching = published.profiles.filter((profile) => profile.aspectRatio === aspect);
if (matching.length === 0) {
const supported = [...new Set(published.profiles.map((profile) => profile.aspectRatio))];
throw new Error(
`Vela model ${wireModel} does not publish aspect ${aspect}; supported: ${supported.join(', ')}`,
);
}
if (requestedResolution) {
const supported = matching.map((profile) => profile.resolution);
const publishedResolution = matchPublishedValue(requestedResolution, supported);
const exact = matching.find((profile) => profile.resolution === publishedResolution);
if (!exact) {
throw new Error(
`Vela model ${wireModel} does not publish resolution ${requestedResolution} at aspect ${aspect}; supported: ${supported.join(', ')}`,
);
}
return exact;
}
// Several resolutions can share one aspect ratio. Prefer the one the model
// defaults to, so asking only for a shape does not silently change quality
// tier or price relative to an unqualified request.
const preferred = matching.find((profile) => profile.resolution === published.defaultResolution);
return preferred ?? matching[0];
}
function videoTaskError(task: JsonRecord): string {
const raw = task.error;
if (typeof raw === 'string' && raw.trim()) return raw.trim();
if (raw == null) return 'no provider error was returned';
try {
return JSON.stringify(raw);View on GitHub (pinned to 5be4028344)
Solutions
- Use one of the resolutions listed in the error message for that aspect
- Omit input.resolution to get the model's default resolution for that aspect
- Check `vela media models --json` for current resolution options at the aspect
Example fix
// before
await renderVelaImage({ ...input, aspect: '16:9', resolution: '4K' }); // only 1K/2K published
// after
await renderVelaImage({ ...input, aspect: '16:9', resolution: '2K' }); Defensive patterns
Strategy: validation
Validate before calling
function resolutionIsPublishedAtAspect(
resolution: string,
aspect: string,
published: VelaPublishedImageCapabilities,
): boolean {
return published.profiles.some(
p => p.aspectRatio === aspect && p.resolution.toLowerCase() === resolution.toLowerCase(),
);
}
if (resolution && !resolutionIsPublishedAtAspect(resolution, aspect, published)) {
// pick a supported resolution or drop it to use the default
} Try / catch
try {
const profile = selectImageOutputProfile(published, aspect, resolution, wireModel);
} catch (err) {
if (err instanceof Error && /does not publish resolution/.test(err.message)) {
// parse supported resolutions from the message and retry, or drop resolution
} else throw err;
} Prevention
- Derive the resolution picker options from the published profiles for the selected aspect
- When in doubt, omit resolution so the model default applies
- Cache the per-aspect resolution list from the catalogue to drive the UI
When it happens
Trigger: input.aspect matches a published aspect and input.resolution is set, but no profile with that aspect has the requested resolution (e.g. requesting 4K at an aspect that only publishes 1K and 2K).
Common situations: Resolution not offered at that aspect; typo; catalogue changed available resolutions; caller mixed a resolution from one aspect with another.
Related errors
- Vela model ${wireModel} does not publish a quality capabilit
- Vela model ${wireModel} does not publish quality ${tier}; su
- Vela model ${wireModel} does not publish output profiles, so
- Vela model ${wireModel} does not publish aspect ${aspect}; s
- authorized pull receipt has invalid ${key}
AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12).
Data as JSON: /api/errors/57f3c4290094fb8f.
Report an issue: GitHub.