Skip to content

Error messages

Messages are shown as the platform prints them, with the parts that vary in <angle brackets>. Errors in a running batch, and refusals in the app, are on When something’s stuck.

check prints every problem in a file at once, with its path in the YAML:

orbita: orbita/domain-check/motion.yaml:
steps[0] (domain): Unrecognized key: "sourcez"
queues.domain_owner.deadline: "friday_noon" is neither a calendar key nor a duration; the motion has no calendar
1 tenant failed the check
Message Fix
Unrecognized key: "<key>" A typo, or a key in the wrong place. The motion.yaml reference lists every key.
<key>: is only allowed on company steps when, retries and friends don’t apply to that step’s kind.
a motion needs at least one approver Add a handle to approvers.
duplicate step id "<id>" Step ids are unique in a motion.
no step "<id>" after names a step that doesn’t exist.
"<id>" must be an earlier step after names a step that comes later. Steps run after steps above them.
"<fact>" must start with core, fields, or an upstream step id A when.fact reads a step that doesn’t run before this one.
"<value>" is neither a calendar key nor a duration A deadline or until.at is a typo, or the calendar doesn’t have that key. Durations are like 4h or 2d.
"in" must be a duration such as "4h" or "2d" A calendar entry’s in isn’t a duration.
"at" must be a time such as "18:00" when a weekday is given A calendar entry with a weekday needs a time of day.
"<zone>" is not an IANA time zone Use a name like America/Sao_Paulo.
<file> does not exist A step’s run points at a file that isn’t there. Paths are from the motion’s folder.
Could not resolve "<package>" A step imports a package that isn’t installed. Run npm install, and add the package to package.json.
the source's id "<id>" must match its folder, sources/<folder> Rename one or the other.
index.ts must export default defineSource({ … }) A custom source’s index.ts doesn’t export a source.
op <name>: input must be a Standard Schema (zod 4, valibot, arktype…) Give the operation a schema.
host "<host>" must be a bare hostname, without scheme, port or path hosts are like api.example.com.
fixtures/sources/<file>: must be a JSON array of fixture entries A fixtures file is a list, [ … ].
<file>[<n>]: needs exactly one of data, error or sequence Each fixture answers one way.
tenant.yaml: sources.fixtures must be true or false

check doesn’t know the source catalog, so a misspelt operation in sources passes it and is refused by push.

push prints the request that failed and the platform’s message:

/api/tenants/orbita/motions/domain-check/versions → 400 bad_request: invalid manifest
Message Fix
invalid manifest The platform found a problem check can’t see, and the command line doesn’t print which. Almost always it’s an operation in a step’s sources that isn’t in the catalog or the tenant’s custom sources: check the spelling.
step <id> proposes <action>, which the tenant's <system> CRM can't do The connected CRM can’t make that change.
hubspot connections are read_only for now: writing to hubspot is not supported yet Set mode: read_only in crm.yaml.
seeding is only for the memory CRM; tenant <tenant> uses <system> Delete crm-seed.json from a tenant on HubSpot.
bad seed: <problems> crm-seed.json names a field or a record that doesn’t exist.
bad fixtures: <problems> As in check.
<you> is not an approver of <tenant>/<motion> --live needs your token’s handle in the motion’s approvers. Push without --live and make it live in the app, or add the handle.
tenant <tenant> is not registered The tenant doesn’t exist on this app, or MOTIONS_URL points at another one.
unauthorized MOTIONS_TOKEN is missing, revoked, or for another tenant.
Message Fix
can't go live: <problems> The version no longer passes the checks above, usually because a source it uses was removed.
step <id> has already started and can't be removed An upgrade can’t take away a step a company has reached. Open a new batch instead.
step <id> has already started and can't change from <kind> to <kind> Same, for changing its kind.
step <id> has already started and can't change what it runs after Same, for changing its after.
step <id> has already started and can't move before <step> Same, for moving it earlier.
Message
only owners invite owners And only owners make owners, change an owner’s role, remove an owner or create owner tokens.
<tenant> needs at least one owner; make someone else owner first
the handle <handle> is taken in <tenant> Another member has that handle. A token can use your own handle, or one no member has.
<email> is already a member of <tenant>

Motions is built by Pruma. These docs describe what the platform does today; Limitations lists what it doesn't do yet. Open the app