Skip to content
PuniDocs
Open Puni

Troubleshooting


The common failures, surface by surface, and what to do about each.

Most problems have one cause and one fix. Find the message you see.

#In the studio

"This browser can't draw 3D scenes: it has no WebGL." The stage needs WebGL. Open the scene in a desktop browser with hardware acceleration turned on. Editing and saving still work; the last saved cover stands in for the picture. An agent's cloud browser usually has no WebGL: see How agents see.

"The scene is taking a while to draw." The load neither finished nor failed within 20 seconds. Press Try again. If it repeats, the browser has a WebGL context that never draws; use another browser.

"This scene was changed somewhere else. Reload to pick up the latest version." Someone, or an agent, saved a newer revision (REVISION_CONFLICT). Reload the scene, then share. The share dialog’s own version reads “The open scene changed. Open sharing again.”

A blank cover on a tile. The cover was captured by a browser that could not draw. Open the scene in a working browser and save once.

#Importing

"Scene documents must be at most 32 MB." A .puni.json document is capped; asset bytes are separate. Assets inside a portable bundle do not count toward the document, but sampled motion keys can. Export from the studio again, or strip the keys and add motion in the studio.

A GLB imports but shows nothing. Check its size. Very large meshes draw slowly. An asset is capped at 64 MB.

#Command line

PUNI_AUTH. The token is missing, expired, or lacks the render scope. Sign in again with puni auth login --base-url https://puni.design; for the render scope, mint a token with Read, write and render in Settings → Agents instead, because signing in never grants it. Tokens last 30 days.

PUNI_RUNTIME. Your command line is older or newer than the app. Rebuild it from the current checkout.

"Asset storage redirects require an explicit --asset-origin." (PUNI_ASSET_ORIGIN, exit 78.) A scene with uploaded files pulls those files from storage. Pass the storage origin with --asset-origin.

PUNI_CONFLICT, exit 75. The revision you pushed against is stale. Pull, merge your edit, push with the new revision.

#Agents

A 401 from /api/mcp. The token is missing, revoked or expired. Make a new one in Settings → Agents.

"This connection can't edit scenes yet." (HTTP 403 from MCP; the cover route says Missing scope: <scope>.) The token was made read-only. Make a new one with write.

"This result is too large." Ask for a page of objects with inspect_objects instead of the whole scene, or read the document resource in chunks.

Read FAQ and glossary for the words used here.

If ChatGPT reports Only public clients using PKCE are supported, its client metadata was rejected before consent. This is a Puni compatibility error, not a wrong password. No connection is ready until consent completes and the client can list your scenes. Use a token-based coding client, or report the message with the client name.

If a plugin is mentioned but no Puni tools appear, check its MCP declaration and the host's connection status. A skill alone does not provide tools. Read Connect Puni and Plugins and skills.

Was this useful?