Errors
This page lists common error messages. The text in your error can have more detail after the message.
Deploy: project and files
Section titled “Deploy: project and files”| Message | Cause | Fix |
|---|---|---|
The automation folder needs a type.json file | No type.json in the folder. | Add type.json. |
Invalid type.json: ... | A field is missing, wrong, or unknown. | See Project Files. |
Automation source must fit in 256 files and 1 MiB | The project is too large. | Remove files, or add them to .typeignore. |
Exactly one TypeScript or JavaScript entrypoint is required | The entrypoint is missing or has a wrong extension. | Set entrypoint to a .ts, .js, .mts, or .mjs file. |
type.json entrypoint does not match the uploaded entrypoint | The entrypoint file was skipped or ignored. | Check ignore files and skip rules. |
Package install paths are reserved | A path uses node_modules, .type-installed, or .type-contract. | Rename the path. |
Invalid .type/project.json. Restore the folder's original project ID before deploying. | The project file is damaged. | Restore it from version control. |
Deploy: code
Section titled “Deploy: code”| Message | Cause | Fix |
|---|---|---|
Automation typecheck failed: ... | TypeScript errors. Type checks in strict mode, with no Node or Bun types. | Fix the errors. |
QuickJS cannot import <module>. ... | An import that is not allowed. | Use only the allowed imports. |
QuickJS compilation disables macros and import attributes; ... | with { type: ... } or a macro: import. | Remove it. |
Invalid deployment export: ... | The deployment export has a wrong or unknown field. | See Deployment API. |
Subscription <key> requires a matching method | The class has no method with the subscription key. | Add the method, or rename the key. |
Use a non-reserved method name for the subscription key | The key is reserved or has a wrong format. | Use a key such as onMessage. |
Subscription <key> has a rule in its event schema that cannot be saved, ... | The schema uses .refine, .superRefine, .trim, .toLowerCase, or a transform. | Do the check in the method. |
Each subscribed event must have exactly one schema variant with a required literal type | The schema and source.events do not agree. | Add one variant with type: z.literal(...) for each event. |
Event schema is too complex to validate; ... | Too many nested alternatives or references. | Make the schema simpler. |
Debounce keys must be required scalar fields in every event variant | A debounce key path is optional, an object, or missing in a variant. | Use a required string, number, or boolean field. |
Recurring ticks cannot be debounced | debounce on a recurring source. | Remove debounce. |
Agent instructions are required exactly when the mode can invoke an agent | mode and agent do not agree. | Set both, or neither. |
... requires executionModel: methods and an integration source with events: ... | The matcher does not fit the source or the events. | Use the events that the matcher supports, or { handler: "custom" }. |
Built-in matchers evaluate one event at a time. ... | A built-in matcher with delivery: "batch". | Use delivery: "latest", or a custom handler. |
Use only one of condition, evaluation, or jev | More than one AI question form. | Keep one. |
Use eq OR contains, not both | Both text filters. | Keep one. |
Deploy: schedules and sources
Section titled “Deploy: schedules and sources”| Message | Cause | Fix |
|---|---|---|
Recurring intervals must be at least 60 seconds and aligned to whole minutes | everySeconds is less than 60 or not a multiple of 60. | Use 60, 120, 900, and so on. |
Recurring cron schedule <id> fires more than once a minute; ... | A seconds field that runs more often. | Remove the seconds field, or use a fixed second. |
Invalid recurring cron schedule: ... | The expression or time zone is not valid. | Check the expression and the IANA time zone. |
... has no future run | The cron expression never runs again. | Change the expression. |
No signed webhook ingress is available for ... | The connection cannot send events to code automations. | Use a recurring source or a webhook adapter. |
Programmable webhooks use custom subscription methods, not native provider matchers | A built-in matcher on a custom webhook source. | Remove match. |
Webhook setup requires a saved credential account on this connection | The connection has no credential account. | Reconnect the service. |
Deploy: process
Section titled “Deploy: process”| Message | Cause | Fix |
|---|---|---|
Folder deployment requires the "code-first-automations" feature switch | Code automations are not on for the workspace. | Contact Type to ask for access. |
This folder already has a running deployment. Follow it before deploying again. | Another deploy is in progress. | Run type-cli automations deployment <id> --follow. |
Deployment ID already belongs to a different upload. Use a new deployment ID. | A reused deployment ID with different files. | Deploy again. The CLI makes a new ID. |
Deploy this folder using the automation creator's account ... | You did not create this automation. | Ask the creator to deploy, or make a new project. |
A member must resolve this automation's request for human intervention before redeploying | The repair asked for help. | Resolve the request in Type. |
Automation fixtures failed: <names> | One or more fixtures failed. | Read the fixture messages above it. |
Deployment stopped before it finished. Deploy again. | The deploy took more than 10 minutes. | Deploy again. |
Fixtures
Section titled “Fixtures”| Message | Cause | Fix |
|---|---|---|
Fixture output did not match expectedOutput | The output is different. | Compare the output in the deploy log with expectedOutput. |
Unexpected fixture tool call: ... | The code made a call with no matching response. | Add the response, with the exact request. |
Unused fixture tool response: ... | A response that the code did not use. | Remove it, or check why the code did not call it. |
A fixture cannot expect both an error and an output | Both expectedError and expectedOutput. | Keep one. |
Deployment fixture names must be unique | Two fixtures have the same name. | Rename one. |
Fixture batch deadline expired | Fixtures took more than 4 minutes. | Make the fixtures faster, or use fewer. |
| Message | Cause | Fix |
|---|---|---|
Invalid subscription event: ... | The event does not match the schema. | Make the schema accept the real data. |
QuickJS execution failed: ... | An error in the VM: a throw, a timeout, or too much memory. | Read the detail. Return err(...). Do not throw. |
QuickJS execution exceeded its deadline; reconcile effects before retrying | The run took more than 180 seconds. | Do less in each run. Check for partial writes. |
QuickJS API request budget exceeded | More than 128 requests, or more than 8 at the same time. | Make fewer calls. |
Type API response exceeds the QuickJS 2 MiB limit; paginate the request | A response was too large. | Ask for smaller pages. |
QuickJS result exceeds the 2 MiB combined limit for checkpoint, output, visualization and receipts (... bytes) | The output, checkpoint, report, and handoffs are larger than 2 MiB together. | Return less data. Store large datasets in another place and return a short view. |
Not supported: fetch has been disabled ... | The code called fetch. | Use ctx.read and ctx.write. |
output must be JSON, nextCheckpoint must be JSON | A value that is not JSON, for example a Date or undefined. | Convert values to JSON. |
Code-only automations cannot invoke an agent | ctx.agent in mode: "code". | Change the mode. |
An agent effect key was reused with different arguments | The same handoff key with different input. | Use a different key for each handoff. |
At most 100 agent handoffs are allowed per run | Too many handoffs. | Group the work into fewer handoffs. |
Action logs must fit in 8 KiB | An action log is too large. | Make the log smaller. |
Action completed, but its outcome log was not saved. Do not repeat the action: ... | The action ran, but Type could not save its log. | Do not repeat the action. Check the destination. |
Sandbox commands require a live automation invocation | A sandbox call outside a live run. | Give the result in toolResponses. |
automationEffectKey is invalid | The key has a wrong character or is too long. | Use letters, digits, and ._:/-, at most 200 characters. |
A previous automation run was interrupted; its side effects were not replayed | A run stopped in the middle. | Check for partial writes, then resume. |
TypeApiError codes
Section titled “TypeApiError codes”Every SDK error has a code. See SDK Reference.