Skip to main content
Even the best-built templates can fail — especially when working with automation, dynamic data, and After Effects. This guide explains how to detect, interpret, and fix common job errors in Nexrender Cloud.

Where Errors Appear

When a render job fails, the system sets its status to:
"status": "failed"
You can detect this in two ways:

Webhook Delivery

If you’ve defined a webhook, the error will be delivered as a POST request:
{
  "id": "01JTRDF7HCR8QAHYW8GPCP4S9Y",
  "status": "failed",
  "error": {
    "message": "Layer 'title' not found in composition 'main'",
    "code": "LAYER_NOT_FOUND"
  }
}

Manual Polling

Use the jobs API:
  curl -X GET https://api.nexrender.com/api/v2/jobs/JOB_ID \
    -H "Authorization: Bearer YOUR_API_KEY"
Check the returned status and error fields.

Common Causes of Render Failures

CauseError Message ExampleHow to Fix
Invalid layerNameLayer 'subtitle' not foundCheck actual layers via GET /templates/:id
Missing compositionComposition 'main' not foundVerify name when submitting job
Missing asset URLAsset failed to download (403)Double-check src links or permissions
Font not foundFont 'CustomFont-Bold.ttf' not availablePreload font using the Fonts API
Broken AE projectRender failed: AE crashed with exit code 1Preview manually inside After Effects
Expression failureAfter Effects expression error at line XSanitize all dynamic input
Tip: Most errors are caused by bad data or structural mismatches between template and job payload.

Debugging Strategy

Inspect the Template

Use the GET /templates/:id endpoint to see:
  • Available compositions
  • All dynamic layers + property names
  • Font dependencies (if visible)
  curl -X GET https://api.nexrender.com/api/v2/templates/TEMPLATE_ID \
    -H "Authorization: Bearer YOUR_API_KEY"

Use Preview Mode

Render the job with "preview": true:
  {
    "template": { "id": "...", "composition": "main" },
    "preview": true
  }
This saves time and cost — and reveals most issues (missing layers, layout bugs, expression crashes) before final rendering.

Test Job Payloads with Defaults

Temporarily reduce your job to a minimal payload with:
  • Static text only
  • No image/audio layers
  • Known good composition
Once that succeeds, reintroduce dynamic elements incrementally.

Best Practices for Stability

  • Fetch template metadata before every job
  • Use meaningful layerNames and document them internally
  • Preload fonts instead of assuming they exist
  • Validate URLs before sending render jobs
  • Wrap asset layers with fallback expressions inside AE
  • Enable webhook retries on your server (at least 3 attempts)
I