Zie619/n8n-workflows · error · Error
Input text is empty
Error message
Input text is empty
What it means
Thrown by the runOnceForEachItem 'Code' node (workflow 0725). For each incoming item it reads $input.item.json.text and throws when it is falsy — undefined, null, or empty string. Because the node runs per item, one bad item among many aborts the whole execution at that item.
Source
Thrown at workflows/Splitout/0725_Splitout_Code_Update_Triggered.json:25
"owner": "n8n-user",
"license": "MIT",
"category": "automation",
"status": "active",
"priority": "high",
"environment": "production"
},
"nodes": [
{
"id": "cbc036f7-b0e1-4eb4-94c3-7571c67a1efe",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
-120,
40
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Get the input text\nconst text = $input.item.json.text;\n\n// Ensure text is not null or undefined\nif (!text) {\n throw new Error('Input text is empty');\n}\n\n// Function to split text into sentences while preserving dates and list items\nfunction splitIntoSentences(text) {\n const monthNames = '(?:Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)';\n const datePattern = `(?:\\\\d{1,2}\\\\.\\\\s*(?:${monthNames}|\\\\d{1,2}\\\\.)\\\\s*\\\\d{2,4})`;\n \n // Split by sentence-ending punctuation, but not within dates or list items\n const regex = new RegExp(`(?<=[.!?])\\\\s+(?=[A-ZÄÖÜ]|$)(?!${datePattern}|\\\\s*[-•]\\\\s)`, 'g');\n \n return text.split(regex)\n .map(sentence => sentence.trim())\n .filter(sentence => sentence !== '');\n}\n\n// Split the text into sentences\nconst sentences = splitIntoSentences(text);\n\n// Output a single object with an array of sentences\nreturn { json: { sentences: sentences } };"
},
"typeVersion": 2,
"notes": "This code node performs automated tasks as part of the workflow."
},
{
"id": "faae4740-a529-4275-be0e-b079c3bfde58",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
340,
-180
],
"parameters": {
"options": {
"destinationFieldName": "claim"
},
"fieldToSplitOut": "sentences"
},View on GitHub (pinned to 94007c1445)
Solutions
- Inspect the upstream item's json keys and read the text from the correct field (see exampleFix).
- Trim before checking so whitespace-only input is caught, and skip empty items instead of throwing.
- Add a Filter node (text is not empty) before this Code node.
- If text can legitimately be empty, return an empty sentences array rather than failing the run.
Example fix
// before
const text = $input.item.json.text;
if (!text) {
throw new Error('Input text is empty');
}
// after
const text = ($input.item.json.text ?? $input.item.json.content ?? '').trim();
if (!text) {
return { json: { sentences: [], skipped: 'empty text' } };
} Defensive patterns
Strategy: validation
Validate before calling
const text = String($input.item.json.text ?? $input.item.json.content ?? '').trim();
if (!text) {
return { json: { sentences: [], skipped: true } };
} Type guard
function hasText(item) {
const t = item?.json?.text;
return typeof t === 'string' && t.trim().length > 0;
} Prevention
- Put a Filter node (text is not empty) ahead of per-item text processing.
- Trim before the emptiness check so whitespace-only documents are caught.
- Map the correct source field once at the trigger instead of assuming 'text' everywhere.
When it happens
Trigger: An upstream item simply has no text field: the source node puts content under a different key (content, body, description, plain text of an email/PDF), or the document was genuinely empty. Whitespace-only strings (' ') pass the check but then produce zero sentences downstream.
Common situations: Gmail/PDF/RSS trigger renamed output fields between n8n versions; a previous Set node mapping $('text') against a missing field yielding undefined; empty attachments or blank documents in the batch; German-language sentence splitter receiving items from a filter that dropped the text field.
Related errors
- Input text is empty
- One or more input arrays are empty. Check your previous node
- No EDI message found in input. Please provide the EDI messag
- The video ID parameter is empty.
- No input data received
AI-assisted analysis of Zie619/n8n-workflows@94007c1445 (2026-08-15).
Data as JSON: /api/errors/a6544523741ef69c.
Report an issue: GitHub.