Skip to content

Common errors ​

This page lists every diagnostic the compiler reports for Instant Process code, what it means, a short example that produces it, and how to fix it. Each report in the editor links to its section here through How to fix.

Diagnostics come at two severities. Errors stop the compile, so the graph does not update until they are fixed. Warnings do not: the process still compiles and renders, and the warning stays in the editor as a reminder.

A character the editor does not understand ​

A character outside a description is not part of the language. Only keywords, identifiers, quoted descriptions and # comments are allowed on a line.

pml
ACTIVITY 'Check order' @ NEXT

Fix ​

Remove the character, or move it inside the quotes of the description: ACTIVITY 'Check order @ desk' NEXT.

A description without its closing quote ​

A description opens with ' and has no closing ' on the same line. The rest of the line, and everything after it, is read as part of the description.

pml
ACTIVITY 'Pay invoice NEXT

Fix ​

Close the description: ACTIVITY 'Pay invoice' NEXT.

A lane in a process without lanes ​

A process uses lanes only when its first line is a LANE, and inside a pool only when the pool holds lanes. A LANE anywhere else is an error.

pml
START 'Begin' NEXT
LANE Sales
ACTIVITY 'Pay' NEXT
END 'Done'

Fix ​

Start the process with a LANE, and give every node a lane:

pml
LANE Sales
START 'Begin' NEXT
ACTIVITY 'Pay' NEXT
END 'Done'

See Lane.

A word that is not expected here ​

A word or a description stands where the line does not take one. A mistyped keyword, a third string after a link target, and a link on an END line all produce it.

The syntax is NEXT target 'label', and the same after AND. The target comes first, the optional label second, and nothing follows the label.

pml
ACTIVITY 'Pay' NEXT 'Done' 'Paid' 'Extra'

The target is 'Done', the label is 'Paid' and 'Extra' is not expected. Writing NEXT 'Paid' 'Done' makes the compiler look for a node whose identifier is 'Paid'.

END and END-TERMINATE carry no outgoing links.

pml
END 'Done' NEXT 'Begin'

Fix ​

Correct the keyword, or remove the word. On an END line, remove the link and let another node point into the end.

A step name is missing ​

A link keyword, AND or POOL is followed by no identifier where one is required.

pml
ACTIVITY 'Pay' NEXT 'Done' AND

Fix ​

Name the target after AND, or remove the AND: ACTIVITY 'Pay' NEXT 'Done' AND 'Archive'.

A description is missing ​

A node keyword is followed by no quoted description. Every node needs one, after the keyword or after its explicit identifier.

pml
ACTIVITY NEXT

Fix ​

Add the description: ACTIVITY 'Pay invoice' NEXT.

A NEXT is missing ​

A line that has to carry a link carries none.

Fix ​

Add NEXT and its target to the line the report points at.

A step that is already defined ​

Two nodes resolve to the same identifier. Implicit and explicit identifiers share one namespace, so two START nodes, or two activities with the same description, collide.

pml
ACTIVITY 'Pay' NEXT
ACTIVITY 'Pay' NEXT

Fix ​

Give one of them a different description, or explicit identifiers:

pml
ACTIVITY PayDeposit 'Pay' NEXT
ACTIVITY PayRest 'Pay' NEXT

See Explicit identifiers.

A step that does not exist (warning) ​

A NEXT or AND points at an identifier no node declares. The usual cause is a target written as a short paraphrase of a node's description instead of the exact identifier.

It is a warning. The process still compiles and renders. Nothing is drawn for the unknown identifier, and the link pointing at it is left out.

pml
LANE User
START 'Start' NEXT
GATEWAY 'Choice' NEXT 'Open' 'Yes' AND 'IgnoreDoor' 'No'
EVENT 'Open the door' NEXT 'End'
EVENT 'Ignore the doorbell' NEXT 'End'
END 'End'

The nodes declare themselves as 'Open the door' and 'Ignore the doorbell', and the gateway names 'Open' and 'IgnoreDoor'.

Fix 1: use the node's exact description ​

pml
GATEWAY 'Choice' NEXT 'Open the door' 'Yes' AND 'Ignore the doorbell' 'No'

The implicit identifier is the description, character for character, in quotes.

Fix 2: give the nodes explicit identifiers ​

pml
GATEWAY 'Choice' NEXT OpenDoor 'Yes' AND IgnoreDoor 'No'
EVENT OpenDoor 'Open the door' NEXT 'End'
EVENT IgnoreDoor 'Ignore the doorbell' NEXT 'End'

An explicit identifier is one unquoted token, unquoted in the declaration and in every reference.

An attachment connected across lanes ​

A DATA, DATABASE or TEXT and every node it links to belong to the same lane. An attachment written after a later LANE belongs to that later lane.

pml
LANE user1
START 'Start' NEXT
ACTIVITY 'Review' NEXT

LANE user2
ACTIVITY 'Archive' NEXT
END 'End'

DATA 'Form' NEXT 'Review'

'Form' follows LANE user2 and belongs to user2. 'Review' belongs to user1.

Fix ​

Declare the attachment in the lane of the node it belongs with, or repeat that lane before it:

pml
LANE user1
DATA 'Form' NEXT 'Review'

A subprocess without its process ​

A SUBPROCESS names the process it stands for with PROCESS and the process id. The PROCESS clause is missing.

pml
SUBPROCESS 'Billing' NEXT

Fix ​

Add the clause: SUBPROCESS 'Billing' PROCESS '<process id>' NEXT. The editor inserts the id when you pick the process from the suggestions. See Subprocesses.

A process id that is not valid ​

The value after PROCESS is not a process id.

pml
SUBPROCESS 'Billing' PROCESS 'abc' NEXT

Fix ​

Pick the process again from the suggestions after PROCESS, so the editor writes its id.

A subprocess whose process no longer exists (warning) ​

The process a SUBPROCESS references was deleted, or is not available to you.

Fix ​

Change the process the node references, or remove the node. See Changing the process a node references.

Too many subprocesses (warning) ​

The process declares more subprocesses than one process records as references. The subprocesses after the limit are drawn, and are not recorded as references.

Fix ​

Move part of the process into a subprocess of its own, so each process stays within the limit.

A subprocess name that is too long (warning) ​

The identifier of a SUBPROCESS is longer than a reference records. The node is drawn, and is not recorded as a reference.

Fix ​

Give the node a shorter description, or a short explicit identifier: SUBPROCESS Billing 'Billing for every order type' PROCESS '<process id>'.

A gateway with more than three branch labels ​

A gateway carries at most three different link labels across its outgoing links. Branches that repeat a label leave the gateway together and count once.

pml
GATEWAY 'Choice' NEXT 'Approve' 'Yes' AND 'Reject' 'No' AND 'Hold' 'Maybe' AND 'Escalate' 'Later'

Fix ​

Reuse a label, or split the decision over two gateways:

pml
GATEWAY 'Choice' NEXT 'Approve' 'Yes' AND 'Reject' 'No' AND 'Hold' 'Maybe' AND 'Escalate' 'Maybe'

A pool in a process without pools ​

A process uses pools only when its first line is a POOL. A POOL anywhere else is an error.

pml
START 'Begin' NEXT
ACTIVITY 'Pay' NEXT
POOL Shop
END 'Done'

Fix ​

Start the process with a POOL, or remove the POOL lines. See Pool.

A node connected to its own pool ​

A node links to the pool it belongs to. A pool never links to itself or to a node inside it.

pml
POOL Shop
ACTIVITY 'Pay' NEXT-MESSAGE Shop

Fix ​

Link the node to another pool, or to a node in another pool.

An attachment connected to a pool ​

A DATA, DATABASE or TEXT links to a pool. An attachment links to the nodes it belongs with, never to a pool.

pml
POOL Customer
DATA 'Form' NEXT Shop
ACTIVITY 'Fill form'
POOL Shop
ACTIVITY 'Read form'

Fix ​

Link the attachment to a node: DATA 'Form' NEXT 'Fill form'.

A sequence flow between pools (warning) ​

A link between two pools, or ending on a pool, is a message flow. Written with NEXT it is a warning.

pml
POOL Customer
ACTIVITY 'Order' NEXT 'Read order'
POOL Shop
ACTIVITY 'Read order'

Fix ​

Write the link with NEXT-MESSAGE: ACTIVITY 'Order' NEXT-MESSAGE 'Read order'. See Next-message.

A message flow from a text annotation ​

Every link of a TEXT line is an association. NEXT-MESSAGE on a TEXT line is an error.

pml
TEXT 'Within five days' NEXT-MESSAGE 'Pay'

Fix ​

Write the link with NEXT or NEXT-ASSOCIATION: TEXT 'Within five days' NEXT 'Pay'.

The process could not be built ​

The compiler read the code and could not build a graph from it.

Fix ​

Undo the last change. When the report stays, send the code through the Feedback button in the header.

Something went wrong ​

The compiler stopped on an error of its own, not on a mistake in the code.

Fix ​

Undo the last change. When the report stays, send the code through the Feedback button in the header.