FlowiseAI/Flowise · error · Error

JSON Path is required

Error message

JSON Path is required

What it means

Thrown by JSONPathExtractor_Tools.init (the INode factory) when nodeData.inputs.path is empty, before any tool instance is constructed. This is the design-time guard that prevents error 384 from ever firing in normal Flowise use — the node refuses to initialize without a path. It runs at flow load/run time, not at tool _call time.

Source

Thrown at packages/components/nodes/tools/JSONPathExtractor/JSONPathExtractor.ts:118

            },
            {
                label: 'Return Null on Error',
                name: 'returnNullOnError',
                type: 'boolean',
                default: false,
                description: 'Return null instead of throwing error when extraction fails',
                optional: true,
                additionalParams: true
            }
        ]
    }

    async init(nodeData: INodeData, _: string): Promise<any> {
        const path = (nodeData.inputs?.path as string) || ''
        const returnNullOnError = (nodeData.inputs?.returnNullOnError as boolean) || false

        if (!path) {
            throw new Error('JSON Path is required')
        }

        return new JSONPathExtractorTool(path, returnNullOnError)
    }
}

module.exports = { nodeClass: JSONPathExtractor_Tools }

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Open the node and type a path in the JSON Path field (e.g. 'data' or 'user.name').
  2. If building the flow programmatically, set inputs.path in the node data before running.
  3. Validate required fields before flow save in your automation.
  4. Note: returnNullOnError does NOT suppress this init-time error — the path must be non-empty regardless.

Example fix

// before
nodeData.inputs = { path: '' }
// after
nodeData.inputs = { path: 'data.result' }
Defensive patterns

Strategy: validation

Validate before calling

function validateNodeInputs(nodeData: INodeData) {
  const path = (nodeData.inputs?.path as string)?.trim?.() ?? ''
  if (!path) throw new Error('JSON Path is required — set inputs.path before running the flow')
}

Type guard

function hasPathInput(n: INodeData): n is INodeData & { inputs: { path: string } } {
  return typeof n.inputs?.path === 'string' && n.inputs.path.trim().length > 0
}

Prevention

When it happens

Trigger: The JSON Path input field on the node is blank or contains only whitespace; the flow was imported/saved without setting the required field; the node was duplicated and the path field wasn't filled.

Common situations: Saving a draft flow before configuring required inputs; programmatic flow creation that omits path; a migration that reset optional/required flags.

Related errors


AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12). Data as JSON: /api/errors/ee53acf11b4e85c7. Report an issue: GitHub.