FlowiseAI/Flowise · error · Error
No extraction path configured
Error message
No extraction path configured
What it means
Thrown by JSONPathExtractorTool._call when this.path is falsy AND returnNullOnError is false. The tool is constructed with a path in init (which itself guards against empty path via error 387), so reaching here at call time means the path was set to an empty string after construction — e.g. the field was cleared, a dynamic re-init ran with an empty value, or an extension subclassed the tool with path=''. The returnNullOnError flag is the explicit escape hatch that converts this throw into a 'null' return.
Source
Thrown at packages/components/nodes/tools/JSONPathExtractor/JSONPathExtractor.ts:35
.describe('JSON data to extract value from')
})
private readonly path: string
private readonly returnNullOnError: boolean
constructor(path: string, returnNullOnError: boolean = false) {
super()
this.path = path
this.returnNullOnError = returnNullOnError
}
async _call({ json }: z.infer<typeof this.schema>): Promise<string> {
// Validate that path is configured
if (!this.path) {
if (this.returnNullOnError) {
return 'null'
}
throw new Error('No extraction path configured')
}
let data: any
// Parse JSON string if needed
if (typeof json === 'string') {
try {
data = JSON.parse(json)
} catch (error) {
if (this.returnNullOnError) {
return 'null'
}
throw new Error(`Invalid JSON string: ${error instanceof Error ? error.message : 'Parse error'}`)
}
} else {
data = json
}
View on GitHub (pinned to abe4a8601a)
Solutions
- Set the JSON Path input in the node (e.g. 'data', 'user.name', 'items[0].id').
- If empty path is a legitimate runtime state, enable Return Null on Error so the tool emits 'null' instead of throwing.
- If constructing the tool directly, pass a non-empty path to the constructor.
- Trace the upstream variable feeding path and add a default value.
Example fix
// before
new JSONPathExtractorTool('', false)
// after
new JSONPathExtractorTool('data.result', false) Defensive patterns
Strategy: validation
Validate before calling
function makeExtractor(path: string, returnNullOnError = false) {
if (!path || !path.trim()) throw new Error('path is required — set it before constructing JSONPathExtractorTool')
return new JSONPathExtractorTool(path.trim(), returnNullOnError)
} Type guard
function hasNonEmptyPath(o: { path?: unknown }): o is { path: string } {
return typeof o.path === 'string' && o.path.trim().length > 0
} Try / catch
try {
return await extractor.invoke({ json })
} catch (e) {
if (e instanceof Error && e.message === 'No extraction path configured') {
return 'null' // or reconfigure with a default path
}
throw e
} Prevention
- Always pass a non-empty path to the constructor; never ''.
- If path may legitimately be empty at runtime, enable returnNullOnError.
- For dynamic paths, validate upstream before assigning to the node input.
- Audit subclassed/extended tools that might bypass the init guard.
When it happens
Trigger: The node's JSON Path input was left blank or filled with whitespace, or the tool instance was constructed programmatically with '' as path (bypassing the init guard). At _call time, the empty path makes lodash.get meaningless, so the tool refuses rather than silently returning the whole object.
Common situations: A flow where the path is wired from an upstream variable that resolves to empty; a copied node whose path field wasn't updated; programmatic use of JSONPathExtractorTool without going through the INode.init path.
Related errors
- JSON Path is required
- Must specify one of "k" or "similarity_threshold".
- Agent name is required!
- No Jira host provided
- MCP Server Config is required
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/47869e604afc4858.
Report an issue: GitHub.