@helvetic_H
Let’s do this validation to see if it works. Please follow these steps.
Steps
1 – Validate the path explicitly
Before the Read/Write Files from Disk node, add a Code node (or an IF node) with the following code:
return [{
json: {
path: $json.path,
exists: require('fs').existsSync($json.path),
}
}]
This confirms whether the file actually exists during background execution.
If exists returns false, the Read/Write Files from Disk node will not output any data, which is expected behavior in n8n.
2 – Use absolute paths (mandatory when running in Docker)
Avoid relative paths like:
./images/file.png
Use absolute paths instead:
/files/images/file.png
And make sure your docker-compose.yml includes a proper volume mount:
volumes:
- ./files:/files
3 – Confirm file permissions inside the container
Exec into the container and check the directory permissions:
ls -lah /files
The files must be readable by the user running n8n inside the container.
4 – Add explicit logging (best practice)
Before and after the Read/Write Files from Disk node:
- add a Set node or a Code node
- log the following values:
- file path
- expected file size
- timestamp
This makes it much easier to distinguish between “no data reached the node” and “the node executed but produced no output”.
If needed, the next steps would be validating that the path is absolute, confirming that the Docker volume is correctly mounted, or adjusting the workflow to avoid filesystem dependency (for example, working with in-memory binaries).
Let us know if works