nexu-io/open-design · error · Error

Vela video task returned unsupported status ${lastStatus}

Error message

Vela video task returned unsupported status ${lastStatus}

What it means

The polled task status is not one of the six recognized values: succeeded, failed, cancelled, canceled, queued, running. After checking for succeeded, then failed/cancelled/canceled, then asserting queued/running, any other status string hits this guard.

Source

Thrown at apps/daemon/src/media/vela.ts:509

        );
      }
      lastStatus = nonEmptyString(task.status) ?? 'missing';
      const elapsedSeconds = Math.round((Date.now() - startedAt) / 1000);
      input.onProgress?.(`Vela video status ${lastStatus}; elapsed ${elapsedSeconds}s`);

      if (lastStatus === 'succeeded') {
        const bytes = await readNonEmptyOutput(outputPath, 'video get');
        return {
          bytes,
          providerNote: `vela/${wireModel} · ${ratio} · ${input.length ?? 5}s · ${DEFAULT_VELA_VIDEO_RESOLUTION} default · ${bytes.length} bytes`,
          suggestedExt: '.mp4',
        };
      }
      if (lastStatus === 'failed' || lastStatus === 'cancelled' || lastStatus === 'canceled') {
        throw new Error(`Vela video task ended with status ${lastStatus}: ${videoTaskError(task)}`);
      }
      if (lastStatus !== 'queued' && lastStatus !== 'running') {
        throw new Error(`Vela video task returned unsupported status ${lastStatus}`);
      }
    }

    throw new Error(
      `Vela video task timed out after ${totalTimeoutMs}ms; last status ${lastStatus}`,
    );
  } finally {
    await rm(tempDir, { recursive: true, force: true });
  }
}

View on GitHub (pinned to 5be4028344)

Solutions

  1. Update the Vela CLI and daemon to mutually compatible versions
  2. Inspect the raw status string in the poll response to identify the new value
  3. Report the unrecognized status to maintainers if running the latest version
Defensive patterns

Strategy: try-catch

Try / catch

try {
  const result = await renderVelaVideo(input);
} catch (err) {
  if (err.message.includes('unsupported status')) {
    logger.error('Vela returned unrecognized task status', err);
    throw err;
  }
  throw err;
}

Prevention

When it happens

Trigger: The Vela API introduces a new status value the daemon doesn't handle (e.g. 'paused', 'pending_review'); the status field contains unexpected casing or a typo; the response is malformed and contains an arbitrary string.

Common situations: Vela CLI/API version upgrade adds a new intermediate status; a localized or aliased status string leaks through; backend returns a transient diagnostic status.

Related errors


AI-assisted analysis of nexu-io/open-design@5be4028344 (2026-08-12). Data as JSON: /api/errors/9f60f30b574c6fed. Report an issue: GitHub.