Skip to main content

debug

Display messages in the debug panel for testing and troubleshooting flows.

debug
output v1.0.0

Display messages in the debug sidebar panel. Essential for testing, troubleshooting, and understanding message flow.

debug log console troubleshooting
Inputs
1
Outputs
0

Overview

The debug node is your window into the flow. It displays message contents in the debug sidebar, making it indispensable for:

  • Testing flows - Verify nodes produce expected output
  • Troubleshooting - Find where data gets corrupted or lost
  • Understanding data - See the structure of incoming messages
  • Monitoring - Watch real-time values during operation

You can have multiple debug nodes throughout your flow to trace data as it transforms. Debug nodes can be enabled/disabled without redeploying the flow.

Properties

Property Type Required Default Description
name string - - Display name for this node in the editor.
active boolean - true Whether debug output is active. Can be toggled without redeploying.
tosidebar boolean - true Show messages in the debug sidebar panel.
console boolean - false Log messages to the system console (stdout).
tostatus boolean - false Show a short summary as the node status text.
complete string - payload What to display: "payload" (msg.payload), "true" (complete msg), or a property path.
targetType string - msg Type of output: "msg" (message property), "full" (complete message object).
statusVal string - - Property to display as node status when tostatus is enabled.
statusType string - auto Status value type: "auto", "msg", "flow", "global".

Debug Panel

The debug sidebar shows messages from all active debug nodes. Each message displays:

Debug Message Components

Timestamp When the message was received
Node name Which debug node produced the output
Message The payload or full message content
Type Data type (string, number, object, array, buffer)
Tip: Quick Toggle

Click the button on a debug node to quickly enable/disable it without redeploying. The node turns grey when disabled.

Output Options

Configure what the debug node displays:

msg.payload Payload Only

Shows just the payload property. Best for most use cases where you care about the data.

complete msg Full Message

Shows the entire message object including topic, _msgid, and all custom properties. Useful for debugging message routing and metadata.

msg.property Specific Property

Shows a specific property path like payload.temperature or req.headers.

Examples

Basic Payload Debug

The most common use case - debug the payload to verify data flow.

Sensor Data Debug

Displays temperature readings as they flow through.

View Flow JSON
[
  {
    "id": "inject1",
    "type": "inject",
    "name": "Simulate Sensor",
    "payload": "23.5",
    "payloadType": "num",
    "repeat": "5",
    "wires": [["debug1"]]
  },
  {
    "id": "debug1",
    "type": "debug",
    "name": "Temperature",
    "active": true,
    "tosidebar": true,
    "console": false,
    "complete": "payload"
  }
]

Full Message Object

View the complete message to debug routing and metadata issues.

Full Message Debug

Shows the entire message object including topic and msgid.

View Flow JSON
[
  {
    "id": "mqtt1",
    "type": "mqtt-in",
    "name": "Sensor",
    "topic": "sensors/temp",
    "wires": [["debug2"]]
  },
  {
    "id": "debug2",
    "type": "debug",
    "name": "Full Message",
    "active": true,
    "tosidebar": true,
    "complete": "true",
    "targetType": "full"
  }
]

Node Status Display

Show a value as the node status for at-a-glance monitoring.

Status Display

Shows current temperature as the debug node's status.

View Flow JSON
[
  {
    "id": "sensor1",
    "type": "dht22",
    "name": "DHT22",
    "wires": [["debug3"]]
  },
  {
    "id": "debug3",
    "type": "debug",
    "name": "Temp Status",
    "active": true,
    "tosidebar": true,
    "tostatus": true,
    "complete": "payload.temperature",
    "statusVal": "payload.temperature",
    "statusType": "msg"
  }
]

Best Practices

1. Name Your Debug Nodes

Give each debug node a descriptive name. When you have multiple debug nodes, names help identify which part of the flow produced each message.

2. Use Multiple Debug Points

Place debug nodes at key points in your flow: after input, after transformation, before output. This helps isolate where problems occur.

3. Disable in Production

Debug nodes consume memory storing messages. Disable them in production or use the console output option for server-side logging.

4. Use Status for Monitoring

Enable "show status" to display values directly on the node. Great for dashboards where you want to see values at a glance in the editor.

5. Filter High-Volume Data

For high-frequency data, add a filter or sample node before debug to avoid flooding the debug panel and browser memory.

Troubleshooting

Debug panel not showing messages
  • Check if the debug node is enabled (not greyed out)
  • Verify "output to debug panel" is checked
  • Make sure the flow is deployed
  • Check the debug panel filter isn't hiding messages
  • Verify messages are actually reaching the debug node (check wiring)
Browser becomes slow with debug

Too many debug messages can overwhelm the browser:

  • Clear the debug panel regularly
  • Disable debug nodes you're not actively using
  • Use console output instead for high-volume debugging
  • Add a delay or filter node to reduce message frequency
Shows [object Object] instead of data

Click on the message in the debug panel to expand it. Objects are collapsed by default. You can also click the arrow to copy the path to a specific property.

Buffer data shows as numbers

Buffer data displays as byte values. To see as string, convert before debug:

msg.payload = msg.payload.toString('utf8');
return msg;