remotion-dev/remotion · error · Error

JSON.stringify(deployResult)

Error message

JSON.stringify(deployResult)

What it means

Thrown by the services deploy CLI command when the deploy API returns a deployResult that lacks a fullName field. The full service name (projects/.../services/...) is required for downstream operations, so its absence indicates a failed or partial deploy response.

Source

Thrown at packages/cloudrun/src/cli/commands/services/deploy.ts:100

			performImageVersionValidation: false, // this is already performed above
			memoryLimit: memoryLimit ?? '2Gi',
			cpuLimit: cpuLimit ?? '1.0',
			timeoutSeconds: timeoutSeconds ?? DEFAULT_TIMEOUT,
			minInstances: Number(minInstances),
			maxInstances: Number(maxInstances),
			projectID,
			region,
			logLevel,
			indent: false,
			onlyAllocateCpuDuringRequestProcessing,
		});

		if (!deployResult.fullName) {
			Log.error(
				{indent: false, logLevel},
				'full service name not returned from Cloud Run API.',
			);
			throw new Error(JSON.stringify(deployResult));
		}

		if (!deployResult.shortName) {
			Log.error(
				{indent: false, logLevel},
				'short service name not returned from Cloud Run API.',
			);
			throw new Error(JSON.stringify(deployResult));
		}

		if (!deployResult.alreadyExists && !deployResult.uri) {
			Log.error(
				{indent: false, logLevel},
				'service uri not returned from Cloud Run API.',
			);
		}

		const consoleUrl = makeConsoleUrl(region, deployResult.shortName);

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Ensure the Cloud Run API is enabled: gcloud services enable run.googleapis.com.
  2. Verify project billing and quotas via GCP console.
  3. Re-run the deploy command with --log-level=verbose to capture the full deployResult.
  4. Confirm the service account has Cloud Run Admin role.

Example fix

// no code fix; inspect the logged JSON deployResult for the GCP error
// run deploy with verbose logging:
// npx remotion cloudrun services deploy --log-level=verbose
Defensive patterns

Strategy: try-catch

Try / catch

try {
  await deployService({projectID, region, ...});
} catch (e) {
  const result = JSON.parse(e.message);
  // inspect result for GCP API error details
  throw e;
}

Prevention

When it happens

Trigger: deployService() returns an object where deployResult.fullName is falsy. The CLI logs the error and throws the stringified result for diagnostics.

Common situations: GCP Cloud Run API returning an error object instead of a service, quota issues, or project not having the Cloud Run API enabled.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/5958c590ed306df2. Report an issue: GitHub.