openclaw/openclaw · error · Error

DeepInfra video generation does not support video reference

Error message

DeepInfra video generation does not support video reference inputs.

What it means

Thrown at the top of generateVideo (extensions/deepinfra/video-generation-provider.ts:212) when req.inputVideos contains one or more entries. The DeepInfra video provider declares videoToVideo.enabled = false. The guard fires synchronously before any network call.

Source

Thrown at extensions/deepinfra/video-generation-provider.ts:212

          seed: "number",
          negative_prompt: "string",
          negativePrompt: "string",
          style: "string",
        },
      },
      imageToVideo: {
        enabled: false,
      },
      videoToVideo: {
        enabled: false,
      },
    },
    async generateVideo(req) {
      if ((req.inputImages?.length ?? 0) > 0) {
        throw new Error("DeepInfra video generation currently supports text-to-video only.");
      }
      if ((req.inputVideos?.length ?? 0) > 0) {
        throw new Error("DeepInfra video generation does not support video reference inputs.");
      }
      const auth = await resolveApiKeyForProvider({
        provider: "deepinfra",
        cfg: req.cfg,
        agentDir: req.agentDir,
        store: req.authStore,
      });
      if (!auth.apiKey) {
        throw new Error("DeepInfra API key missing");
      }

      const model = normalizeDeepInfraModelRef(req.model, defaultModel);
      const deadline = createProviderOperationDeadline({
        timeoutMs: req.timeoutMs,
        label: "DeepInfra video generation",
      });
      const { baseUrl, allowPrivateNetwork, headers, dispatcherPolicy } =
        resolveProviderHttpRequestConfig({

View on GitHub (pinned to 01804a7531)

Solutions

  1. Check provider.capabilities.videoToVideo.enabled before attaching input videos.
  2. For text-to-video with DeepInfra, omit inputVideos (or pass an empty array).
  3. Route video-to-video requests to a provider that declares videoToVideo.enabled = true.

Example fix

// before
await provider.generateVideo({ prompt, inputVideos: [{ buffer, mimeType: "video/mp4" }] });

// after
await provider.generateVideo({ prompt });
Defensive patterns

Strategy: validation

Validate before calling

if (provider.capabilities?.videoToVideo?.enabled === false && (req.inputVideos?.length ?? 0) > 0) {
  throw new Error(`${provider.id} does not support video-to-video`);
}

Type guard

function supportsVideoToVideo(provider: { capabilities?: { videoToVideo?: { enabled?: boolean } } }): boolean {
  return provider.capabilities?.videoToVideo?.enabled === true;
}

Prevention

When it happens

Trigger: A VideoGenerationRequest with inputVideos.length > 0 is sent to the DeepInfra video provider's generateVideo method.

Common situations: Caller assumes video-to-video is supported; a dispatcher forwards video references to all providers; UI exposes a video-reference upload that routes to an unsupported provider.

Related errors


AI-assisted analysis of openclaw/openclaw@01804a7531 (2026-08-12). Data as JSON: /api/errors/e1dab3aa1cc056a2. Report an issue: GitHub.