Debugging Blueprints

Debug RUAL blueprint flows with simulation mode, the console, production runs, and the audit log — read error pins and test blocks systematically.

This page covers the tools and techniques for finding out why a flow misbehaves. If you are looking for a fix to a specific symptom, start with Common Issues & Fixes. For execution semantics — dataflow, parallel branches, and error handling — see Block Execution.

Using the console

The blueprint console shows execution details for your flows and is often the fastest way to see what a flow actually did. Activate it through the Options menu in the top right of your blueprint, then run the flow — for example through simulation mode — and watch the console output to pinpoint where behavior diverges from what you expect.

Blueprint console panel showing execution details after a simulated run

Simulating blocks and functions

Blocks at the beginning of a flow feature a play icon. Clicking it opens a popup where you can switch between play modes, activate the current mode (default is simulation), and adjust simulation values. Each out-pin of the starting block can be given a test value, which is then passed to the connected blocks as the simulation traces through the flow. This makes simulation mode ideal for end-stage debugging: you see the output at every step without touching real traffic.

Simulation popup with play mode switch and editable simulation values

Simulation values must be formatted according to their pin type, or the simulation will not produce the results you expect:

Pin Type Formatting
value "value" or ""
number 1
condition true or false
object {"key": "value"} or {}
array ["value1", "value2"] or []
date 1749321690 (timestamp as number)
uiclass "uiclass" or ""
uistyle {"background": "grey"} or {}
uiattributes {"loading": "lazy"} or {}
Simulating Functions The full simulation walkthrough in Tips & Tricks.

Production run vs development view

Simulation runs against development data. When a bug only appears with real data, select Production Run in the play mode options: it executes the non-deployed (development) blueprint against production data. This lets you debug the current state of your blueprint with real documents, without deploying anything and without affecting the live production environment.

Keep the difference in mind when interpreting results: the development view shows your unsaved/saved working state, while production users run the last deploy. If development works but production does not, the blueprint was probably never deployed — see Blueprint not saving / changes lost.

Permission required The Production Run permission can be disabled for specific users in User Access Management. If the option is missing from your play mode menu, ask an administrator to enable it for your account.

Audit log navigation

Every blueprint modification is automatically logged — like git commits, but with real-time collaboration. The audit log records who changed what and when, which makes it the first place to check when a flow that used to work suddenly behaves differently.

  • Whole blueprint: open the audit log through the Options menu in the top right of the blueprint.
  • Single block: click the block's options () and select Revisions to see only the changes affecting that block.
Block options menu with the Revisions entry and its per-block audit history

Reading error messages

RUAL has no try/catch mechanism. When a block fails, the flow does not stop — instead, blocks that can fail expose their result through output pins:

  • success — a condition pin that is true when the operation succeeded and false when it failed.
  • error — a value pin containing the error message when the operation fails.

A typical error payload looks like this:

Example Error Output
{
  "success": false,
  "error": "Document not found for the given GUID"
}

Always connect and inspect these pins on blocks that perform storage operations, HTTP requests, or anything else that can fail — an unconnected error pin means failures pass silently. See Error Handling for the common handling patterns.

Block with its success and error out-pins connected to a condition block

The table below maps frequent error symptoms to their likely cause and the first thing to check:

Symptom Likely cause First thing to check
Document not found for the given GUID The GUID fed into the block is empty, wrong, removed, or expired. Simulate the flow and inspect which value actually reaches the GUID in-pin.
Flow stops doing anything after a block The block failed and its success/error pins are unconnected, so the failure is silent. Connect the success pin to a condition block and log or display the error pin.
Search returns an empty array Indexing delay, or case-sensitive mismatch between stored and searched values. Check the casing of the stored value, and retry with the disable cache query option. See real-time search.
Function does not execute from another blueprint The function is private, or the blueprint containing it is not activated. Check the function's visibility and press Activate on the owning blueprint.
API returns 401 Missing/expired token, or the caller lacks the endpoint's scope. See Connection problems and Remote Access Control.
Works in development, not for users Changes saved but never deployed to production. See Blueprint not saving / changes lost.

Testing blueprints systematically

When a flow is too tangled to debug by inspection, work through it in order:

  1. Isolate — narrow the problem down to the smallest flow (or function) that still shows the wrong behavior. Use the block Revisions to confirm nothing changed unexpectedly.
  2. Simulate — run that flow in simulation mode with controlled values in the correct pin-type format, and trace the output at each step.
  3. Verify pins — check that every block along the path receives the in-pin values you expect and produces the out-pin values the next block needs. Pay special attention to success/error pins on storage and HTTP blocks.
  4. Confirm against production data — if simulation passes but the live flow still fails, repeat the run with Production Run to rule out data-dependent issues.
Common Issues & Fixes Symptom-led fixes for frequent problems: saving, activation, stale data, performance, and connections. Block Execution How blocks execute: dataflow, parallel branches, and error handling.