n8n-io/n8n · error
" " contains no extractable text.
Error message
"${attachment.fileName}" contains no extractable text. What it means
After decoding and UTF-8 conversion, the attachment's text content trims to an empty string — the file has no extractable text (e.g. a binary or blank file routed to the plain-text path). The message names the offending fileName.
Solutions
- Check the file actually contains text and is not empty or binary
- If it is a structured format (pdf/docx/xlsx), ensure the extension or MIME type routes it to the proper extractor
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/@n8n/instance-ai/src/tools/attachments/parse-file.tool.ts:146 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/8a9642efdd9a7380.
Report an issue: GitHub.
Appendix: source
Thrown at packages/@n8n/instance-ai/src/tools/attachments/parse-file.tool.ts:146
function emptyTabularFields() {
return {
columns: [],
rows: [],
totalRows: 0,
returnedRows: 0,
};
}
function extractPlainTextContent(attachment: AttachmentInfo) {
const decoded = Buffer.from(attachment.data, 'base64');
if (decoded.length > MAX_DECODED_SIZE_BYTES) {
throw new Error(formatSizeLimitMessage(decoded.length));
}
const content = decoded.toString('utf-8').trim();
if (!content) {
throw new Error(`"${attachment.fileName}" contains no extractable text.`);
}
if (content.length > MAX_RESULT_CHARS) {
return { content: content.slice(0, MAX_RESULT_CHARS), truncated: true };
}
return { content, truncated: false };
}
export function createParseFileTool(context: InstanceAiContext) {
return new Tool('parse-file')
.description(
'Parse parseable user attachments from the current message. ' +
'For CSV, TSV, JSON, and XLSX, returns column metadata (with normalized names and inferred types) and paginated rows. ' +
'For text, Markdown, HTML, PDF, and DOCX, returns extracted content. ' +
'Use nextStartRow to page through large tabular files. ' +
'When parsing tabular attachments to create, seed, or inspect Data Tables, load ' +
'`data-table-manager` via `load_skill` before calling this tool. ' +View on GitHub (pinned to 5ac6606e81)