Flows are extremely powerful. With great power comes great responsibility - sometimes flows can cause errors in your projects.
Learn how to find and fix flow errors for optimal project performance.
How do I know something isn't working?
Flow Error
If there is a flow error, the affected feature will appear neon magenta / bright pink on the map.
Engine Failure
Sometimes the flow might break the rendering for some or all of the geometries in your project. You will see an engine status error in the bottom left corner of your Giraffe tab.
Try pausing and re-starting the engine (click the pause button to the left of the error text).
If pause and restart doesn't work, try removing the flow from geometries in the project.
Crash
Sometimes, a flow error will completely crash your Giraffe tab. (Usually this happens when you have self-referencing nodes or a bad loop).
Try refreshing the tab. If you are unable to get back in, reach out to support for assistance retrieving the file.
Troubleshooting steps
Spectacles
Turn on the Spectacles from the top bar. This displays the state of all nodes in the Flow.
Review Warnings and Errors
Any nodes with an error will appear in Red. Red nodes mean the entire flow is failing due to the error.
Any nodes with a warning will appear in orange. Orange nodes mean that the flow is still able to complete, but some information may be missing.
Read the Status
If a node has an error or a warning, you may want to use the Reader node to review the status.
Add the Reader node to the Status (S) output of the node with the error/warning to see the message.
Pause Nodes
Try pausing a specific node to see if it is causing the issue. Right click on the node title -> Disable.
Pause Engine
Pause the entire Giraffe engine to stop all geometry generation.
Click the pause button in the top bar of the flow editor.
Recompute
If processing seems stuck, try clicking recompute. This stops the flow process and restarts it.
Refresh Tab
If all else fails, try refreshing your browser tab.
Review Errors and Warnings
Understanding error codes can help you troubleshoot what is not working
Error | What it means | How to fix |
Cannot read properties of undefined | Missing inputs | Add the correct input data by connecting another node |
Missing required inputs: <name> (orange warning) | A required input has nothing connected and no default value. The flow can still run, but output may be incomplete. | Connect an edge to the named input, or set a default value on the node |
Node type not found / Unknown node type: "<type>" | The node's type no longer exists in Giraffe - usually a retired node kept from an older flow, or an unsupported node from an import | Right-click the node to see if an upgrade is offered; otherwise delete it and rebuild with a current node |
Division by zero (warning) | A Divide (or similar math) node got 0 as its denominator. The node still returns a result, often Infinity | Check the upstream value feeding the denominator and guard against zero |
Input must be a polygon / Feature must be a polyline (and similar "must be a ___" messages) | The node received the wrong geometry type - e.g. a line where a polygon was expected | Trace the input back to where the geometry type changed and add a conversion or filter node |
Polygon has no edges / Centroid could not be computed for this geometry / Could not fit a rectangle inside the polygon | The input geometry is empty, degenerate, or invalid (e.g. zero area) | Check the source geometry is valid and non-empty before this node |
Count must be greater than 0 / Length must be greater than 0 | A numeric parameter that must be positive is 0 or negative | Fix the parameter value, or check the upstream node/slider feeding it |
Failed to parse geometry: <detail> | The node received data that isn't valid geometry | Check the data source or import step feeding this node |
Flow with id <id> not found / No flow id provided | A Function (sub-flow) node points to a flow that's been deleted, or has none selected | Open the node's settings and select a valid flow |
Recursion is not supported | A flow calls itself, directly or through another flow | Remove the circular reference between flows |
Usage <name> not found / No grid found in project boundary | A Usage or Project node references a usage or grid that no longer exists in this project | Re-select a valid usage/grid on the node |
Output <key> is not a number / Input list must contain either all numbers or all vectors | A math node received mixed or non-numeric data | Check the upstream data type; make sure list items are consistently numbers or all vectors |
unsupported operator "<operator>". Use one of: ... | A "modify property" node was given an operator it doesn't recognize | Pick one of the operators listed in the error message |
Graph contains a cycle | Two or more nodes are wired into a loop that isn't a supported iteration structure | Remove the circular connection, or rebuild the loop with a Map/Reduce/Iterate node |
No features were generated. Please check the parameters. (warning) | The generative logic ran, but the input geometry/parameters left no room for a valid result | Loosen the parameters, or check the input geometry is large/valid enough |
null (shown as a node's output value, not a labeled error) | The node's output is JavaScript's null, usually because an upstream calculation had nothing valid to return | Check the input data type and/or logic to ensure the node can process a result |
Typical Problems
Missing an Input value
If a required input has nothing connected to it, the node shows an orange warning reading Missing required inputs: <name>. The flow can often still run, but the output may be missing data. Connect an edge to the named input, or set a default value on the node itself.
Data type mismatch
Nodes expect specific data types - a polygon, a number, a list of vectors, and so on. Feeding in the wrong type produces errors like Input must be a polygon, Feature must be a polyline, or Output is not a number. Trace the connection back to where the type changed and add a conversion or filter node, or check the source data.
Providing a List when Single Object is expected
Some nodes expect a single feature or value, not a list. Passing a list in usually shows up as Cannot read properties of undefined, because the node tries to read a property that only exists on a single object. Add a node like First or Get Item before the input, or check whether the upstream node is unexpectedly outputting a list.
If a Fix Doesn't Seem to Work
Before switching to a different node or a different approach, confirm the change you already made is actually reaching the geometry you're looking at.
Turn on the Spectacles and check that the node you just added or edited shows a result, not an error or warning.
If your flow branches, confirm which branch actually feeds the
write featuresnode connected to the geometry you see on the map. A change on the wrong branch won't show up, even if the node itself is set up correctly.Use the Reader node on the output you just changed to confirm the value is what you expect, before assuming the whole approach is wrong.
If a change genuinely isn't working after checking the above, say what you checked and why before trying something different. Switching to an unrelated node without explaining the change makes a flow harder to debug, for you and for anyone helping you with it.








