remotion-dev/remotion · error · Error
Renderer S3 failed status is invalid
Error message
Renderer S3 failed status is invalid
What it means
When status.state is 'failed', the parser requires failedAt to be a finite number, shouldRetry a boolean, and errorInfo a non-null object. These fields carry the renderer's real error back to the orchestrator, so a malformed failed status masks the original failure with this validation error.
Source
Thrown at packages/serverless-client/src/renderer-transport.ts:172
candidate.metadata.downloadBehavior === null ||
typeof candidate.metadata.downloadBehavior === 'object'
)
) {
throw new Error('Renderer S3 completed status has an invalid artifact');
}
}
return status as S3RendererStatus;
}
if (status.state === 'failed') {
if (
!isNumber(status.failedAt) ||
typeof status.shouldRetry !== 'boolean' ||
typeof status.errorInfo !== 'object' ||
status.errorInfo === null
) {
throw new Error('Renderer S3 failed status is invalid');
}
return status as S3RendererStatus;
}
throw new Error(`Unknown renderer S3 status state: ${String(status.state)}`);
};
View on GitHub (pinned to 10db9de073)
Solutions
- Inspect status.json - the malformed failure payload may still contain traces of the underlying renderer error.
- Check the renderer function's CloudWatch/run logs for the true error - a failed status exists because the render already failed once.
- Fix the underlying render failure, then retry with a fresh renderId.
- Align @remotion/* versions and redeploy the renderers.
Defensive patterns
Strategy: retry
Validate before calling
# Inspect the failed payload - traces of the true renderer error may survive
aws s3 cp "s3://$BUCKET/renders/$RENDER_ID/transport/chunks/$CHUNK/attempt-$ATTEMPT/status.json" - \
| jq '{state, failedAt, shouldRetry, errorInfo}' Try / catch
try {
await renderMediaOnCloudRun({...input, renderId: makeRenderId()});
} catch (err) {
if (err.message.includes('Renderer S3 failed status is invalid')) {
// the render failed AND its error report is corrupt - check renderer logs,
// fix the root cause, then retry with a fresh renderId
throw new Error('Renderer failed with an unreadable error report - inspect function logs');
}
throw err;
} Prevention
- A malformed failed-status means the render already failed - always pull the renderer function logs for the real error before retrying.
- Align versions and redeploy after upgrades to keep failure payloads well-formed.
- Raise renderer memory limits if processes die mid-write while reporting failures.
When it happens
Trigger: A crashed or OOM-killed renderer wrote a partial failed status (errorInfo truncated or missing); version skew changed the failure payload shape between renderer and orchestrator.
Common situations: Renderer processes dying mid-write; mixed Remotion versions; interrupted uploads of the status object right at failure time.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- Renderer S3 status must be an object
- Renderer S3 status has invalid progress fields
- Renderer S3 completed status is invalid
- Renderer S3 completed status has an invalid artifact
- The "${name}" prop ${location} must be a string, but you pas
AI-assisted analysis of remotion-dev/remotion@10db9de073 (2026-08-22).
Data as JSON: /api/errors/c0707a577dade85e.
Report an issue: GitHub.