Errors and troubleshooting
Understand contract failures, sandbox limits, and import errors.
Failure codes
| Code | Action |
|---|---|
| MANIFEST / SCHEMA / PACKAGE | Correct the reported field or envelope |
| TYPE | Match the declared type, bounds, and exact output keys |
| REFERENCE | Use an existing input or completed earlier recipe output |
| RUNTIME_UNAVAILABLE | Select an implemented runtime or operation |
| PERMISSION / CONTEXT | Declare the matching context read scope and supply the correct snapshot |
| CONDITION | Use a compatible single-output pass-through contract |
| LIMIT / TIMEOUT | Reduce source, sample size, memory use, or computation |
| CANCELLED | The run was stopped; preserve original inputs |
| TESTS_REQUIRED / BEHAVIOR | Add meaningful fixtures or fix the mismatch |
| WORKER_REQUIRED | Run browser JavaScript through a disposable worker |
| CONFLICT / STALE_TESTS | Reload or retest the exact current source |
| IMMUTABLE_RELEASE | Choose a new version for changed content |
| SETUP_REQUIRED | Account operations need the configured host services |
Common issues
A portable image reference is not decoded pixel data. The host must resolve it before a pixel-processing function runs. Missing secondary context values cannot be invented by offline tests; provide concrete fixture values. Returning extra output keys fails even if other output values are correct.
Diagnose in order
- Validate the manifest and package.
- Run each fixture through the real sandbox.
- Inspect sample outputs and their declared roles.
- Rehearse the connected Project Type.
- Test actual supported media in the host workspace.
Every SDK error code
Generated from the SDK source (194 codes). The message is one example; the actual message names the exact field or limit.
| Code | Example message | Raised in |
|---|---|---|
| ADAPTER | Declare the conversion’s type and meaning. | adapter-registry, universal-resolver |
| ADAPTER_CONTEXT | The … needs a persistent project identity | connection-adapters |
| ADAPTER_LIMIT | Convert at most 100 items at a time. | connection-adapters |
| ADAPTER_PERMISSION | Declare context.….read to use this connection | connection-adapters |
| ADAPTER_PIN | This connection adapter changed. Review the connection before running it | connection-adapters |
| ADAPTER_TYPE | The connected output must be … | connection-adapters, csv-table |
| AGENT_CONTRACT | Declare an independently versioned control adapter | native-agent-contract |
| APPEARANCE | Use plain theme rules; CSS escapes, nesting, filters and color blending need adaptation. | appearance |
| APPLICATION_ARTIFACT_HOST | Supply host-owned authorization and bounded byte-fetch callbacks. | browser-application-artifacts |
| APPLICATION_GUEST_ARGUMENT | Use the declared lifecycle arguments only. | browser-application-guest |
| APPLICATION_GUEST_BUSY | Wait for the active application operation. | browser-application-guest |
| APPLICATION_GUEST_DATA | Application messages need plain JSON fields, without accessors. | browser-application-guest |
| APPLICATION_GUEST_INPUT | Operation inputs must match the mounted inputs. | browser-application-guest |
| APPLICATION_GUEST_INSTALLED | Application registration is already installed or the target is invalid. | browser-application-guest |
| APPLICATION_GUEST_LIMIT | Application messages must be bounded by at most 4 MiB. | browser-application-guest |
| APPLICATION_GUEST_MOUNT | Application mount must acknowledge mounting only. | browser-application-guest |
| APPLICATION_GUEST_OPERATION | Declare 1–32 application operations. | browser-application-guest |
| APPLICATION_GUEST_REGISTRATION | Register one application adapter before mounting. | browser-application-guest |
| APPLICATION_GUEST_RESULT | Adapters return output values only, never host receipt or verification fields. | browser-application-guest |
| APPLICATION_GUEST_SIGNAL | Use an AbortSignal when supplied. | browser-application-guest |
| APPLICATION_GUEST_STATE | Supply the host state revision. | browser-application-guest |
| APPLICATION_INTEGRITY | Application artifact byte count differs from its reference. | browser-application-artifacts |
| APPLICATION_SOURCE_LIMIT | Application source | browser-application-artifacts |
| APPLICATION_SOURCE_REFERENCE | Use a browser application manifest. | browser-application-artifacts |
| APPLICATION_STATE_LIMIT | Application state artifact | browser-application-artifacts |
| APPLICATION_STATE_REFERENCE | Application scope | browser-application-artifacts |
| ARCHIVE | Expected a complete single ZIP archive | portable-archive |
| ARCHIVE_PATH | Use safe relative regular-file paths | portable |
| AUDIO_SCORE_HOST | Choose a supported Audio Score operation | audio-score-host |
| BEHAVIOR | Output differs from expected fixture. Expected …; received … | testing |
| BROWSER_APPLICATION_UNAVAILABLE | No trusted desktop browser application executor is installed. A bundle or mounted interface is not execution. | browser-application-execution |
| BUSY | JavaScript runners are busy. Try again shortly. | sandbox-node |
| BYOK_PAYMENT_HOST | Choose a supported payment capability | byok-payment-host |
| CANCELLED | Conversion stopped. | adapter-registry, browser-application-execution, browser-application-guest and 7 more |
| CANVAS_GENERATION_HOST | Canvas media Blocks require version … of their trusted generation host | canvas-generation-host |
| CANVAS_NODE_HOST | Invalid versioned Canvas node registration | canvas-node-host |
| CANVAS_WORKSPACE | Canvas needs its scoped snapshot and navigation binding | canvas-workspace-host |
| CAPABILITY_BINDING | Transcription audio must reference the exact declared audio or video port (a video's sound is transcribed) | capabilities |
| CAPABILITY_EXPECTATION | Include expectations for the exact declared output | capabilities |
| CAPABILITY_INPUT | … must be a saved image (asset, version and URL) | capabilities |
| CAPABILITY_LIMIT | negativePrompt must be at most 2,000 characters | capabilities |
| CAPABILITY_MANIFEST | Expected a host-mediated capability manifest | capabilities |
| CAPABILITY_OUTPUT | A generated script contains schemaVersion and text only | capabilities, json-schema |
| CAPABILITY_SCHEMA | Capability values must be finite | capabilities, json-schema |
| CAPABILITY_SETTINGS | … does not accept a last frame | capabilities, generation-catalog |
| CAPABILITY_TYPE | Transcription takes one persistent audio or video input and one language input | capabilities |
| CODE | JavaScript must contain 1–262144 bytes | javascript |
| COMFY_BACKEND | Expected ComfyUI object_info | comfyui |
| COMFY_BINDING | Choose named Block inputs and outputs before creating the package | comfyui-import, comfyui |
| COMFY_CYCLE | ComfyUI workflows cannot contain cycles | comfyui |
| COMFY_EXPECTATION | Every declared output needs a typed expectation | comfyui |
| COMFY_FILE | Use a host-generated PNG basename without paths, URLs or annotations | comfyui |
| COMFY_IMPORT | ComfyUI import accepts finite JSON values only | comfyui-import |
| COMFY_JSON | Choose a ComfyUI API-format JSON workflow | comfyui-import |
| COMFY_MANIFEST | Provide an explicit ComfyUI Block manifest | comfyui-import, comfyui |
| COMFY_MODEL | Use an installed safetensors checkpoint basename; paths, URLs and other model formats are unsupported | comfyui |
| COMFY_NODE | Node … (…) has unexpected or missing inputs. Connection settings, credentials, code and dependencies cannot be embedded. | comfyui-import, comfyui |
| COMFY_OUTPUT | Decoded image metadata is required | comfyui |
| COMFY_REFERENCE | Image inputs require an exact existing node and output index | comfyui |
| COMFY_SCHEMA | ComfyUI values must be finite | comfyui |
| COMFY_SDK_PACKAGE | This is already a StillMade SDK package. Import it directly without converting its workflow. | comfyui-import |
| COMFY_TYPE | ComfyUI accepts images, text and bounded numeric controls | comfyui |
| COMFY_UI_WORKFLOW | This is a ComfyUI visual workflow export. In ComfyUI, use Export (API) or Save (API Format), then import that JSON. Visual node positions and widget values cannot be safely converted without the exact node definitions. | comfyui-import |
| CONFLICT | Collection removed | document-operations, document-store, shared-view |
| CONNECTION_BINDING | Bind every declared input to a real schema property. | connected-app |
| CONNECTION_CLIENT | Provide the existing authenticated host request service. | connection-client |
| CONNECTION_CONFIGURATION | Configure the exact original connected task. | configured-connection |
| CONNECTION_CONTRACT | Declare the exact connected-app contract, schemas and typed bindings. | connected-app |
| CONNECTION_EXPECTATION | Use one bounded result expectation. | connected-app |
| CONNECTION_OUTPUT | Declare one typed result for this operation. | connected-app |
| CONNECTION_PIN | An exact backend task/version/schema pin is required. | connected-app |
| CONNECTION_SCHEMA | This task needs a compatible object input schema. | connected-app |
| CONNECTION_SOURCE | Use the exact private catalog-issued Python source. | connected-app |
| CONNECTION_TASK | Choose a declared task operation. | connected-app-view |
| CONNECTION_VERSION | Use the catalog-issued immutable definition hash. | connected-app |
| CONTEXT | Provide valid project shots | context |
| DEPENDENCY_RESTRICTED | Bundle adapted dependency code into src/run.js and record each dependency as a licensed source; runtime installation is unavailable | portable |
| DESKTOP_EXECUTION | A desktop execution mapping requires a stateless JavaScript or recipe package with declared desktop tools. | desktop-execution |
| DESKTOP_EXECUTION_REQUIRED | This Block requires its approved desktop executor. Running its JavaScript or recipe alone does not execute the native tool. | desktop-execution, runtime |
| DESKTOP_RECEIPT | Invalid native execution request. | desktop-execution, package-jobs |
| DESKTOP_TOOL | Declare one to eight approved desktop tools | desktop-tools |
| DOCUMENT_DRAFT | Use a JSON object document | document-drafts |
| DOCUMENT_IDENTITY | Use a JSON object document | document-identity |
| DOCUMENT_SOURCE_CONFLICT | Project source changed underneath the shared draft. Review and explicitly reset the shared draft for everyone, or supply a compatible source. | document-store |
| DOCUMENT_STORE | Use a bounded named document field | document-store |
| FIRST_PARTY_SOURCE | Use the exact published first-party package before creating a remix. | remix-policy, testing |
| HOST_SERVICES | Animated assets requires its version 1 generation and dialog host | animated-assets-host, asset-generation-host, blueprint-host-services and 47 more |
| INPUT_SOURCE | … does not allow … information. Choose a permitted source. | input-source-policy |
| JOB_EXECUTOR | Use a trusted host executor | package-jobs |
| JOB_LIMIT | Return final outputs within 32 cooperative turns | javascript |
| JOB_PROGRESS | Use explicit complete/total units or omit progress | javascript |
| JOB_RESULT | Return final Block outputs, not a guest pending-job envelope | package-jobs |
| JOB_SUBSCRIBER | Use a progress listener | package-jobs |
| JOB_TIMEOUT | Use an execution deadline between 1 ms and 15 minutes | package-jobs |
| LICENSE_BLOCKED | Missing applicable upstream LICENSE, COPYING or NOTICE; preserve every ancestor notice and scoped license | portable-github, portable, remix-policy |
| LICENSE_RESTRICTED | Conflicting file-level SPDX license at … | portable-github, portable |
| LIMIT | Source exceeds static review complexity | admission, browser-application-execution, capabilities and 14 more |
| LINEAGE | Declare lineage {parents:[{id,version,digest}],changes} | portable |
| LOCAL_WORKER_REQUIRED | Pair a reviewed local worker for this application. A browser or desktop download alone cannot execute its native source. | runtime |
| MANIFEST | Invalid JavaScript manifest | javascript |
| MEDIA_DESCRIPTION_HOST | Describe Media requires a supported image reference and optional hint | media-description-host |
| MEDIA_RENDER_INPUT | Final render requires a versioned timeline, settings, and Block source. | portable-media-contracts |
| MEDIA_RENDER_LIMIT | Final render exceeds the approved timeline limits. | portable-media-contracts |
| MEDIA_RENDER_RECEIPT | The final render receipt is invalid. | portable-media-contracts |
| MEDIA_UPLOAD_HOST | Import Media requires its version 1 host interface | media-upload-host |
| MOCK_HOST | … has the sections … | mock-host |
| MODULE_BUNDLE | Only module Blocks and frame views with assets are bundled this way | module-bundle |
| MODULE_FILE | … is missing from the local files | module-node, module-runtime |
| MODULE_HOST_UNAVAILABLE | Local files need a file reader. | mock-host |
| MODULE_HOSTED | A module Block identity is required | module-hosted |
| MODULE_PERMISSION | This Block did not declare … in permissions.capabilities | module-hosted |
| MODULE_RESULT | The module host returned an unexpected result | runtime |
| NATIVE_APPLICATION_AUTHORITY | Use the scoped project execution checkpoint. | runtime |
| NATIVE_APPLICATION_UNAVAILABLE | No trusted native application executor is installed. A bundle or mounted interface is not execution. | native-application-execution |
| NATIVE_BINDING | Declare scoped trusted bindings | native-workspace-contract |
| NATIVE_CALLBACK | Workspace callback is unavailable | native-workspace-contract |
| NATIVE_CONTRACT | Unsupported native … schema | native-workspace-contract |
| NATIVE_DEPENDENCY | Native host dependency …@… is unavailable | native-workspace-contract |
| NATIVE_HOST | Invalid installed host provider declarations | native-host-providers |
| NATIVE_MODULE | Choose an explicitly versioned native module | native-workspace-contract |
| NATIVE_REGISTRATION | Declare registration and ownership-scoped cleanup | native-workspace-contract |
| NATIVE_REGISTRY | Declare an exact dependency alias to another workspace | native-workspace-contract |
| NATIVE_SERVICE | Host service …@… is unavailable | native-workspace-contract |
| NATIVE_UPDATE | The atomic state host is unavailable | native-workspace-contract |
| PACKAGE | Declare a Block package and its manifest. | define-block, javascript, testing |
| PATCH | Invalid operation path | document-operations |
| PERMISSION | This conversion needs permission. | adapter-registry, context, contracts and 2 more |
| PIPELINE_ASSET_HOST | Canvas requires its version 1 asset persistence host | pipeline-asset-host |
| PIPELINE_NODE_GENERATION_HOST | Pipeline generation nodes require version 1 of their trusted generation host | pipeline-node-generation-host |
| PIPELINE_RUNTIME_HOST | Pipeline requires version 1 of its runtime host | pipeline-runtime-host |
| PORTABLE_ACTION | media.generate needs 1–50 items. | portable-media-actions |
| PORTABLE_ACTION_RESULT | The host action result does not match its declared Block output. | portable-action-results |
| PORTABLE_ENTRY | Runtime entry must match the canonical source file | portable |
| PORTABLE_FILES | Include bounded UTF-8 source and legal evidence files | portable |
| PORTABLE_FORMAT | Portable attribution requires retained portable evidence | portable |
| PORTABLE_UI | Declare manifest.ui (generated controls; [] is valid for context-only input) | portable |
| PRESENTER_INPUT | Presenter placement requires a version 1 Whiteboard and finite placement. | portable-media-contracts |
| PRESENTER_RECEIPT | Presenter pose assets require exact source, sheet, slice, and version receipts. | portable-media-contracts |
| PREVIEW_MODULE | A preview requires an exact Block identity and version | native-preview-contract |
| PROJECT_FLOW_SNAPSHOT | Supply a project Flow snapshot. | project-flow-contract |
| PROJECT_FLOW_TARGET | Supply a structured project Flow target. | project-flow-contract |
| PROVENANCE | The job must retain exactly its reviewed user answers. | package-jobs, sandbox-node, universal-resolver |
| PYTHON_CONTRACT | Choose supported annotated scalar inputs and result. | python-connection |
| QUALITY_INPUT | Quality analysis accepts 1–16 exact asset versions. | portable-media-contracts |
| QUALITY_RECEIPT | Every planned asset requires one retained analysis receipt. | portable-media-contracts |
| RECIPE | Expected recipe schema 1, at most 64 steps, and output bindings | recipe |
| REFERENCE | Invalid reference | recipe |
| REFERENCE_SELECTION | Choose a bounded field browser. | reference-source |
| REFERENCE_SOURCE | Use an exact snapshot identity. | reference-source |
| REQUIREMENT | Choose a declared input requirement. | interactive-requirements, package-jobs, sandbox-node and 1 more |
| RESOLVER | Choose an exact asset version for scoped resolution. | universal-resolver |
| RUNTIME | Sandbox memory configuration was not applied | javascript |
| RUNTIME_RESTRICTED | Local admission supports recipes, isolated JavaScript, declarative capabilities and ComfyUI workflows. Hosted execution still requires account review. | local-admission, portable |
| RUNTIME_UNAVAILABLE | This host does not provide interactive Block questions. Supply this input before running. | javascript, recipe, runtime |
| SCHEMA | Numbers must be finite | contracts, semantic-contracts |
| SEMANTIC | Resolve meanings from at most 200 pinned Block manifests. | package-semantics, semantic-contracts |
| SHARED_TEXT_CLOSED | Shared text session is closed | shared-text |
| SHARED_TEXT_INPUT | Shared text must be a string | shared-text |
| SHARED_TEXT_LIMIT | Shared text exceeds its character limit | shared-text |
| SHARED_TEXT_STATE | Shared text data contains trailing bytes | shared-text |
| SHARED_WORK_CONTRACT | Declare a bounded, versioned shared-work schema. | shared-work |
| SHARED_WORK_INPUT | Shared-work requests require bounded JSON arguments. | shared-work |
| SHARED_WORK_OPERATION | Choose a declared shared-work operation. | shared-work |
| SOURCE_DECLARATION | Original sources must retain an implementation snapshot alongside legal evidence | portable |
| SOURCE_MISMATCH | GitHub returned a different tree from the pinned commit | portable-github |
| SOURCE_PIN | GitHub must confirm the exact source commit and its tree | portable-github, portable |
| SOURCE_RESTRICTED | Complete repository tree is required for license verification | portable-github |
| SOURCE_UNAVAILABLE | Pinned GitHub evidence unavailable (…); installation is blocked until it can be verified | portable-github |
| STALE | The conversion source expired or is no longer current. Refresh it before trying again. | adapter-registry, universal-resolver |
| STATE_BEHAVIOR | State differs from expected fixture | testing |
| STATE_LIMIT | Block state exceeds 64 KiB | state |
| STATE_MIGRATION | All migration declarations together must fit within 64 KiB | state-migrations |
| STATE_REQUIRED | Declare a valid scoped state contract | state |
| STATE_TEST | Fixture state requires a declared stateful Block | testing |
| STATE_UNDECLARED | This Block does not declare persistent state | javascript, package-jobs |
| STATE_VERSION | State does not match this Block’s declared state schema | state |
| STOCK_PROVENANCE | The stock source has no approved license policy. | portable-media-contracts |
| STOCK_RECEIPT | The stock acquisition receipt is invalid. | portable-media-contracts |
| TEST | Desktop fixtures need a name and typed input/output contracts. | testing |
| TESTS_REQUIRED | Add a sample image and typed output expectations before reviewing the import. Samples have not run yet. | comfyui-import, portable, testing |
| TIMEOUT | JavaScript exceeded its cumulative 500 ms execution limit | javascript, local-admission, package-jobs and 2 more |
| TYPE | … values must be an object | contracts, javascript, recipe |
| VIDEO_ASSETS_HOST | Prompt recommendations require an image URL and text prompts | video-assets-host |
| VIEW | View JavaScript exceeds review complexity | view |
| VIEW_STATE | Shared edit exceeds 800,000 bytes | shared-view |
| WORKER_REQUIRED | Run JavaScript blocks through a worker | runtime |
| WORKFLOW_APPROVAL | Workflow approval must be a required direct-user decision with no saved default or context source. | semantic-contracts, workflow-approvals |
| WORKFLOW_EVENT | Use a named event with a bounded identity. | workflow-events |
| WORKSPACE_APPLICATION | Invalid workspace application adapter | workspace-application |
| WORKSPACE_NAVIGATION | Invalid Block navigation declaration | workspace-navigation |
| WORKSPACE_PRESENCE | Presence must be an object | workspace-sync |
| WORKSPACE_ROUTE | Invalid standalone workspace declaration | workspace-application |
| WORKSPACE_SYNC | Invalid workspace change | workspace-sync |
| YOUTUBE_HOST | YouTube host version 1 is required | youtube-host |