Blender render errors and how to fix them (with the error codes JANCTION Render returns)

Updated 2026-10-12

Every failed job on JANCTION Render comes back with a code, a reason, who can fix it (fix_by: agent, user or service) and a recommended action; the preview critic also names missing textures, a script that built nothing and a scene without light before you spend a final render. Below are the common errors, their codes and the fixes. Renders that fail on our side are not charged.

What it does Your own .blend, bpy script or 3D file (glTF/GLB, FBX, USD, OBJ...) rendered to images or video on a cloud NVIDIA GPU, from an AI app, the terminal or the browser. The first preview needs no payment.
What it does not do It does not speed up the Blender viewport on your machine, does not take non-Blender video, simulations or general GPU jobs, and an AI that is not connected cannot render on its own.

Try your own file for freeBuild it with an AI and try

Browser only; no connector or CLI needed. A 100 JPY welcome credit for a new key (14 days, no card; one per network every 30 days, further keys on the same network share what is left), and 400 JPY more for saving a card that is not charged (once per card); after that, previews stay free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second.

Pink or black textures (MISSING_TEXTURE, missing_files)

Blender renders a texture it cannot find as pink (Cycles) or black. On JANCTION Render the scene is read before any render: scene_info and the preview critic list missing_files. Fix: pack the images into the .blend (File > External Data > Pack Resources), export a .glb (textures travel inside), or send the files as assets next to the scene (asset_urls on the remote server, assets on the stdio server, extra form fields on POST /v1/files) keeping the same relative folders.

The script raised an exception (SCRIPT_ERROR, SCRIPT_SYNTAX_ERROR)

A bpy script that does not parse is refused at upload (HTTP 400 script_syntax_error with the line); a script that raises at run time fails the job with the exception and the line, and nothing is rendered or charged. Fix the line, then preview again. Common causes on Blender 5.0: mat.diffuse_color only affects the viewport (set the Principled BSDF Base Color), obj.animation_data.action.fcurves no longer exists (use keyframe_insert), and the script must build the scene at import time, not under if __name__ == '__main__':.

The script built nothing (default_scene)

If the preview shows Blender's startup cube, the script ran but added nothing: the critic reports default_scene. Check that objects are linked to bpy.context.scene.collection and that no early return or guard skips the scene-building code.

No camera (CAMERA_NOT_FOUND, auto_camera)

A scene without a camera gets an automatic camera that frames every object from the front-right (the critic says auto_camera); a named camera that does not exist fails the job with CAMERA_NOT_FOUND. Add a camera in the script, or pass orbit=True for a turntable, and import jr_assets; jr_assets.frame_camera() fits the objects.

No light (auto_light, barely_visible)

With no light and no world a plain sun and a grey world are added, which looks flat. Pass environment='studio' (or sunset, overcast, night; environment_visible=False for a plain backdrop) or add a key light in the script.

Out of GPU memory (OUT_OF_MEMORY)

The job is retried once on a free GPU; if it still does not fit, lower the resolution or the texture sizes, simplify the geometry, or render fewer frames per job. Cycles memory grows with textures and geometry, not with samples.

Timeout (RENDER_TIMEOUT)

A preview is capped at 120 s and a final chunk at its own limit. Lower samples or resolution, split the frame range, or try engine='eevee' for simple animations.

The 3D file does not import (IMPORT_FAILED, IMPORTER_ERROR, UNSUPPORTED_IMPORT)

Re-export as glTF 2.0 binary (.glb) without cameras and lights if they are not needed, or send a .blend; a file that references files outside the upload is refused. blender='5.2' uses a newer importer.

Failures on our side (INFRA_CONTAINER, WORKER_LOST, VIDEO_ASSEMBLY_FAILED, OUTPUT_VERIFICATION_FAILED, SANDBOX_UNAVAILABLE)

These are JANCTION's problems: they are not charged, free time is not consumed, and submitting again usually works. If it fails twice, report the job id and the request_id through /support.

Reading the error

REST and MCP errors carry code, retryable, recommended_action, possible_fix and request_id; a failed job's failure block carries code, reason, fix_by, line and evidence. An agent can act on fix_by: agent means fix the script or the arguments, user means the input needs the user, service means wait and retry.

fromhow
A file on this computer (.blend, 3D file)Drop it at /upload to get a 12-hour link (no sign-up), then tell the AI "Render this file: <link>". From inside Blender use the add-on; from a terminal the CLI uploads directly
Claude.ai (web / desktop / mobile)Settings → Connectors → Add custom connector → https://render.janction.jp/mcp. "Connect" opens a page that creates a free key
ChatGPTSettings → Connectors → Advanced → Developer mode → Create → https://render.janction.jp/mcp (OAuth)
Claude Codeclaude mcp add --transport http janction-render https://render.janction.jp/mcp, then /mcp to authenticate
Codexcodex mcp add janction-render --url https://render.janction.jp/mcp
Cursor / VS CodeAdd to Cursor Add to VS Code
The button opens the editor; confirm and it is added. Manual: Streamable HTTP at https://render.janction.jp/mcp
Antigravity CLI / Gemini CLIagy plugin install https://github.com/JasmyLab-JANCTION/janction-render or gemini extensions install https://github.com/JasmyLab-JANCTION/janction-render (the MCP server and the workflow skill)
Grok / Perplexity / Le ChatAdd a custom (remote MCP) connector with https://render.janction.jp/mcp in each app's Connectors settings (Grok: New Connector → Custom; Perplexity: Pro / Max / Enterprise; Le Chat: workspace admin)
Notion (Notion Agent)Business / Enterprise: Settings → Connections → Discover → Add Custom MCP → https://render.janction.jp/mcp, then sign in (the button shows when a workspace admin allows custom MCP servers)
Windsurf, Cline, Goose, other MCP clientsStreamable HTTP at https://render.janction.jp/mcp; OAuth or Authorization: Bearer <api key>
Claude Desktop and other stdio-only clients (npm)npx -y janction-render (in the client's mcpServers: {"command": "npx", "args": ["-y", "janction-render"]}). The npm package janction-render bridges stdio to https://render.janction.jp/mcp with OAuth; --key jr_… for a key you have, --local for the Python stdio server through uv
Terminal (stdio, sends local files)claude mcp add janction-render -e JANCTION_RENDER_SERVER=https://render.janction.jp -- uvx --from janction-render janction-render-mcp
Inside Blender (for people)The add-on; extension repository https://render.janction.jp/extensions/index.json. Maya / Houdini / Cinema 4D: submit tools

FAQ

Why are my textures pink?

Blender could not find the image files. Pack them into the .blend, export a .glb, or send them as assets next to the scene; scene_info and the preview critic list the missing names.

Am I charged for a failed render?

Not when the failure is on our side (container, worker, encoder, verification). A render that fails because of the scene or the script counts only the chunks that finished, and each key has a daily allowance of failed seconds that are not counted at all.

How do I know whether to fix the script or wait?

Read fix_by in the failure block: agent (fix the script or the arguments), user (the input needs the user), service (wait and submit again).

Related

Overview · llms.txt

JANCTION Render v0.4.66 · JasmyLab Inc. · Updated 2026-10-12 · Tested with Blender 5.0 / 5.2, JANCTION Render 0.4.66 · 日本語