n8n-io/n8n · error
JSON array items must be flat objects (not arrays, nulls…
Error message
JSON array items must be flat objects (not arrays, nulls, or primitives)
What it means
parseJson requires every element of the top-level array to be a flat JSON object. This fires when any element is a primitive, null, or a nested array — the tabular header/row extraction cannot map such items to columns.
Solutions
- Flatten or remove non-object elements from the JSON array
- Move nested values into scalar fields (or stringify them) so each element is a flat object
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/@n8n/instance-ai/src/parsers/structured-file-parser.ts:336 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/eb8240a9b07f0be6.
Report an issue: GitHub.
Appendix: source
Thrown at packages/@n8n/instance-ai/src/parsers/structured-file-parser.ts:336
try {
parsed = JSON.parse(content);
} catch {
throw new Error('Invalid JSON: failed to parse');
}
if (!Array.isArray(parsed)) {
throw new Error('Expected a JSON array of objects, got a single value or object');
}
if (parsed.length === 0) {
return { rawHeaders: [], allRows: [] };
}
// Collect all keys across all objects (preserving order of first appearance)
const keySet = new Set<string>();
for (const item of parsed) {
if (typeof item !== 'object' || item === null || Array.isArray(item)) {
throw new Error('JSON array items must be flat objects (not arrays, nulls, or primitives)');
}
const dangerousKey = hasDangerousKey(item as Record<string, unknown>);
if (dangerousKey) {
throw new Error(`Dangerous key "${dangerousKey}" found in JSON data`);
}
for (const key of Object.keys(item as Record<string, unknown>)) {
keySet.add(key);
}
}
const rawHeaders = [...keySet];
// Validate all values are flat
for (const item of parsed) {
const obj = item as Record<string, unknown>;
for (const [key, value] of Object.entries(obj)) {
if (value !== null && typeof value === 'object') {
throw new Error(View on GitHub (pinned to 5ac6606e81)