Loading a text file into node shows empty input

Describe the problem/error/question

I want to load a local text file from pc into n8n and see the text file contents.

I selected a node: When clicking ‘Execute workflow’ and To load the text file, I use the node: Read/Write Files from Disk1 to load the file.

In the node: ‘Read/Write Files from Disk1’, I select the operation: Read File(s) From Disk and, in the Files(s) Selector, I specify the filepath like this: /files/myfile.txt.

In the ‘docker-compose.yml’, I set:

volumes:

  • C:/Documents:/files

For some reason, the text file contents are not shown in the Input for the node: ‘Read/Write Files from Disk1’.

What am I doing wrong?

Thank You

Information on your n8n setup

  • n8n version: Docker desktop n8n image Community Edition
  • Database (default: SQLite): none
  • n8n EXECUTIONS_PROCESS setting (default: own, main): None
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker Desktop
  • Operating system: Win11

Hey @DktPhl25 hope all is good.

Create a Execute Command node and run the command ls -hal /files/
Tell us what you see in the output.

1 Like

I see nothing:{

“name”: “My workflow”,

“nodes”: [

{

  "parameters": {

    "fileSelector": "/files/n8n_nodes.txt",

    "options": {}

  },

  "type": "n8n-nodes-base.readWriteFile",

  "typeVersion": 1,

  "position": \[

    96,

    0

  \],

  "id": "da09094b-37bf-4188-9ab5-ef1b9b560dd9",

  "name": "Read/Write Files from Disk1"

},

{

  "parameters": {},

  "type": "n8n-nodes-base.manualTrigger",

  "typeVersion": 1,

  "position": \[

    -96,

    0

  \],

  "id": "60238837-2b21-441e-98e7-c80e5a012707",

  "name": "When clicking ‘Execute workflow’"

},

{

  "parameters": {

    "command": "ls -hal /files/"

  },

  "type": "n8n-nodes-base.executeCommand",

  "typeVersion": 1,

  "position": \[

    272,

    0

  \],

  "id": "a2d84c53-071e-4373-a5c1-3d2d99bcc77c",

  "name": "Execute Command"

}

],

“pinData”: {},

“connections”: {

"Read/Write Files from Disk1": {

  "main": \[

    \[

      {

        "node": "Execute Command",

        "type": "main",

        "index": 0

      }

    \]

  \]

},

"When clicking ‘Execute workflow’": {

  "main": \[

    \[

      {

        "node": "Read/Write Files from Disk1",

        "type": "main",

        "index": 0

      }

    \]

  \]

}

},

“active”: false,

“settings”: {

"executionOrder": "v1"

},

“versionId”: “a4e8ba34-e149-4376-a41f-6b124044eb0c”,

“meta”: {

"instanceId": "ded5ca205cdd8cd78e6114e6afd2edd4db5510130b9a8221df7f40744130c583"

},

“id”: “6Jc37hk4qealzXOr”,

“tags”:

}

I meant instead of the Read File, run Execute command as a test.
This will tell us the content of the folder and whether it even exists.

2 Likes

You’re correct: Command failed: ls -hal /files/ ls: /files/: No such file or directory. The folder does not exist. In docker compose file → volumes:

  • C:/Documents:/files

I don’t have a folder C:/Documents/files. I only have C:/Documents.

I did not add Docker Volume. Please advise. Thank You

1 Like

Could you please show your docker compose service for n8n? (please make sure to surround it with code blocks, so it is properly formatted?

1 Like

Hello! I provided cmd information. I think you meant something different:

{
“Id”: “a825c3cb59b8a3874359d9aa4113261fb89794389efdf2ee62b3b2135b6aba1a”,
“Created”: “2025-09-23T17:27:29.939921029Z”,
“Path”: “tini”,
“Args”: [
“–”,
“/docker-entrypoint.sh”
],
“State”: {
“Status”: “running”,
“Running”: true,
“Paused”: false,
“Restarting”: false,
“OOMKilled”: false,
“Dead”: false,
“Pid”: 471,
“ExitCode”: 0,
“Error”: “”,
“StartedAt”: “2025-09-24T19:44:42.844514749Z”,
“FinishedAt”: “2025-09-24T03:36:07.22787025Z”
},
“Image”: “sha256:4a159553c22d41f6167c7ddf01e4078c97726af863eae59579f3b2d9e8b12fe2”,
“ResolvConfPath”: “/var/lib/docker/containers/a825c3cb59b8a3874359d9aa4113261fb89794389efdf2ee62b3b2135b6aba1a/resolv.conf”,
“HostnamePath”: “/var/lib/docker/containers/a825c3cb59b8a3874359d9aa4113261fb89794389efdf2ee62b3b2135b6aba1a/hostname”,
“HostsPath”: “/var/lib/docker/containers/a825c3cb59b8a3874359d9aa4113261fb89794389efdf2ee62b3b2135b6aba1a/hosts”,
“LogPath”: “/var/lib/docker/containers/a825c3cb59b8a3874359d9aa4113261fb89794389efdf2ee62b3b2135b6aba1a/a825c3cb59b8a3874359d9aa4113261fb89794389efdf2ee62b3b2135b6aba1a-json.log”,
“Name”: “/funny_almeida”,
“RestartCount”: 0,
“Driver”: “overlayfs”,
“Platform”: “linux”,
“MountLabel”: “”,
“ProcessLabel”: “”,
“AppArmorProfile”: “”,
“ExecIDs”: null,
“HostConfig”: {
“Binds”: ,
“ContainerIDFile”: “”,
“LogConfig”: {
“Type”: “json-file”,
“Config”: {}
},
“NetworkMode”: “bridge”,
“PortBindings”: {
“5678/tcp”: [
{
“HostIp”: “”,
“HostPort”: “5678”
}
]
},
“RestartPolicy”: {
“Name”: “no”,
“MaximumRetryCount”: 0
},
“AutoRemove”: false,
“VolumeDriver”: “”,
“VolumesFrom”: null,
“ConsoleSize”: [
0,
0
],
“CapAdd”: null,
“CapDrop”: null,
“CgroupnsMode”: “host”,
“Dns”: ,
“DnsOptions”: ,
“DnsSearch”: ,
“ExtraHosts”: null,
“GroupAdd”: null,
“IpcMode”: “private”,
“Cgroup”: “”,
“Links”: null,
“OomScoreAdj”: 0,
“PidMode”: “”,
“Privileged”: false,
“PublishAllPorts”: false,
“ReadonlyRootfs”: false,
“SecurityOpt”: null,
“UTSMode”: “”,
“UsernsMode”: “”,
“ShmSize”: 67108864,
“Runtime”: “runc”,
“Isolation”: “”,
“CpuShares”: 0,
“Memory”: 0,
“NanoCpus”: 0,
“CgroupParent”: “”,
“BlkioWeight”: 0,
“BlkioWeightDevice”: null,
“BlkioDeviceReadBps”: null,
“BlkioDeviceWriteBps”: null,
“BlkioDeviceReadIOps”: null,
“BlkioDeviceWriteIOps”: null,
“CpuPeriod”: 0,
“CpuQuota”: 0,
“CpuRealtimePeriod”: 0,
“CpuRealtimeRuntime”: 0,
“CpusetCpus”: “”,
“CpusetMems”: “”,
“Devices”: null,
“DeviceCgroupRules”: null,
“DeviceRequests”: null,
“MemoryReservation”: 0,
“MemorySwap”: 0,
“MemorySwappiness”: null,
“OomKillDisable”: false,
“PidsLimit”: null,
“Ulimits”: null,
“CpuCount”: 0,
“CpuPercent”: 0,
“IOMaximumIOps”: 0,
“IOMaximumBandwidth”: 0,
“MaskedPaths”: [
“/proc/asound”,
“/proc/acpi”,
“/proc/interrupts”,
“/proc/kcore”,
“/proc/keys”,
“/proc/latency_stats”,
“/proc/timer_list”,
“/proc/timer_stats”,
“/proc/sched_debug”,
“/proc/scsi”,
“/sys/firmware”,
“/sys/devices/virtual/powercap”
],
“ReadonlyPaths”: [
“/proc/bus”,
“/proc/fs”,
“/proc/irq”,
“/proc/sys”,
“/proc/sysrq-trigger”
]
},
“GraphDriver”: {
“Data”: null,
“Name”: “overlayfs”
},
“Mounts”: ,
“Config”: {
“Hostname”: “a825c3cb59b8”,
“Domainname”: “”,
“User”: “node”,
“AttachStdin”: false,
“AttachStdout”: false,
“AttachStderr”: false,
“ExposedPorts”: {
“5678/tcp”: {}
},
“Tty”: false,
“OpenStdin”: false,
“StdinOnce”: false,
“Env”: [
“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”,
“NODE_VERSION=22.19.0”,
“YARN_VERSION=1.22.22”,
“NODE_ICU_DATA=/usr/local/lib/node_modules/full-icu”,
“NODE_ENV=production”,
“N8N_RELEASE_TYPE=stable”,
“SHELL=/bin/sh”
],
“Cmd”: null,
“Image”: “n8nio/n8n:latest”,
“Volumes”: null,
“WorkingDir”: “/home/node”,
“Entrypoint”: [
“tini”,
“–”,
“/docker-entrypoint.sh”
],
“OnBuild”: null,
“Labels”: {
“org.opencontainers.image.description”: “Workflow Automation Tool”,
“org.opencontainers.image.source”: “``https://github.com/n8n-io/n8n”``,
“org.opencontainers.image.title”: “n8n”,
“org.opencontainers.image.url”: “``https://n8n.io``”,
“org.opencontainers.image.version”: “1.112.4”
}
},
“NetworkSettings”: {
“Bridge”: “”,
“SandboxID”: “dd8d3bb30c2b8f82bd11c565649b8dad6b6d456e2fce638df0c6093ba71214e1”,
“SandboxKey”: “/var/run/docker/netns/dd8d3bb30c2b”,
“Ports”: {
“5678/tcp”: [
{
“HostIp”: “0.0.0.0”,
“HostPort”: “5678”
},
{
“HostIp”: “::”,
“HostPort”: “5678”
}
]
},
“HairpinMode”: false,
“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”: null,
“EndpointID”: “bd4ee018640ec47158079508276f2c74efc1adfa8bbc7d44a33f560ac36ea789”,
“Gateway”: “172.17.0.1”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“IPAddress”: “172.17.0.2”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“MacAddress”: “f6:91:87:d9:51:2a”,
“Networks”: {
“bridge”: {
“IPAMConfig”: null,
“Links”: null,
“Aliases”: null,
“MacAddress”: “f6:91:87:d9:51:2a”,
“DriverOpts”: null,
“GwPriority”: 0,
“NetworkID”: “3e8de8989c106ef46327d5fadfd0a6b443f54e7f0a09d35023140d2c68f29058”,
“EndpointID”: “bd4ee018640ec47158079508276f2c74efc1adfa8bbc7d44a33f560ac36ea789”,
“Gateway”: “172.17.0.1”,
“IPAddress”: “172.17.0.2”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“DNSNames”: null
}
}
},
“ImageManifestDescriptor”: {
“mediaType”: “application/vnd.oci.image.manifest.v1+json”,
“digest”: “sha256:147e5009c610d803768bd1611a188fad5e1f5490091937d2440f832fe9bf1460”,
“size”: 2769,
“platform”: {
“architecture”: “amd64”,
“os”: “linux”
}
}
}

Apologies, I should have been more precise in my last message. Could you please:

  • show the content of the docker-compose.yml file where you have service configured for n8n
  • make sure you run docker compose down before you run docker compose up, because from the log we see that n8n’s container fails to bind the port 5678 stating it is already bound, likely meaning another instance of n8n is already running.
  • if after running down before up you still see the message about port being already allocated, run docker compose down, and then docker ps -a and see which other containers are running, - one of them is going to be n8n, you will need to docker stop it and then docker rm it.
1 Like

Hello jabbson! The docker - compose contents are:

version: “3”

services:

n8n:

image: n8nio/n8n:latest

container_name: n8n

restart: always

ports:

  • “5678:5678”

environment:

  • N8N_BASIC_AUTH_ACTIVE=true

  • N8N_BASIC_AUTH_USER=admin

  • N8N_BASIC_AUTH_PASSWORD=strongpassword123

volumes:

  • C:/Documents:/files

The manifest appears to be rather outdated.

  • version is not a requirement anymore.
  • N8N_BASIC_AUTH_* variables do not exist anymore and do no good
  • the volume path - try to put it in quotes, something like:
volumes:
  - "C:/Documents:/files"

Then make sure to “down” your infra, kill any possibly dangling containers (as I described above) and “up” it back into life.

Some pointers about docker compose configurations before I hit the bed:

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.