"Write File to disk"-Node fails with "File is not writable"

I Know there are already a few topics covering this problem, but none of them helped me.
I get the “file is not writable”-error for all the files I pushed to the Node, but I can not figure out why this occurs. I trid all the solutions I found but none of them works.

Describe the problem/error/question

I Know there are already a few topics covering this problem, but none of them helped me.
I get the "file is not writable"-error for all the files I pushed to the Node, but I can not figure out why this occurs. I trid all the solutions I found but none of them works. I tried a new folder, different environment variables, I mounted the directory in docker and I created tons of new containers by building them after nearly every change.

What is the error message (if any)?

NodeApiError: The file "/batch_storage/Text.pdf" is not writable. at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/nodes/Files/ReadWriteFile/actions/write.operation.ts:130:10) at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/nodes/Files/ReadWriteFile/ReadWriteFile.node.ts:69:17) at WorkflowExecute.executeNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1045:8) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1226:11) at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1662:27 at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2297:11

Please share your workflow

Share the output returned by the last node

The Output is the error shown above.

Information on your n8n setup

  • n8n version: 2.2.4
  • Database (default: SQLite): PostgreSQL
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app): docker
  • Operating system: Ubuntu

Here is my docker compose:

name: retool-onpremise

services:

n8n:

build:

  context: .

  dockerfile: Dockerfile.n8n

container_name: n8n

environment:

  \# N8N_BASIC_AUTH_ACTIVE: "true"

  \# N8N_BASIC_AUTH_PASSWORD: Password 

  \# N8N_BASIC_AUTH_USER: User 

  DB_SQLITE_POOL_SIZE: "1"                         

  N8N_RUNNERS_ENABLED: "true"                        

  N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "false"    

  N8N_BLOCK_ENV_ACCESS_IN_NODE: "true"         

  N8N_SECURE_COOKIE: "false"

  N8N_DEFAULT_LLM_API_BASE_URL: http://ollama:11434

  N8N_WORKER_MAX_CONCURRENT_EXECUTIONS: 4

  N8N_RUNNERS_MODE: "internal"

  N8N_USER_FOLDER: /home/node

  N8N_DEFAULT_BINARY_DATA_MODE: filesystem

  N8N_USE_GZIP_BINARY_CONTROL: "false"

  N8N_BLOCK_FS_WRITE_ACCESS: "false"

  N8N_HOST: xx.xx.xx.xx

  N8N_EDITOR_BASE_URL: http://xx.xx.xx.xx:5678/

  N8N_PORT: 5678

  N8N_PROTOCOL: http

  N8N_DIAGNOSTICS_ENABLED: "false"

  N8N_TELEMETRY_ENABLED: "false"

  N8N_RESTRICT_FILE_ACCESS_TO: home/user/batch_storage

  N8N_FILESYSTEM_ALLOWED_PATHS: /home/user/batch_storage

  WEBHOOK_URL: http://xx.xx.x.xx:5678/

  N8N_LOG_LEVEL: debug

  NODES_EXCLUDE: "\[\]"

  TZ: Europe/Berlin

networks:

  - retool-network

ports:

  - "5678:5678"

restart: unless-stopped

volumes:

  - /var/run/docker.sock:/var/run/docker.sock

  - /home/ubuntu/batch_storage/:/batch_storage 

  - /home/ubuntu/n8n-data:/home/node/.n8n

I can create files with an execute command node, so it does not seem to be a rights problem.

Hi @MonacoFlori

remove this N8N_FILESYSTEM_ALLOWED_PATHS - I’m not even sure this is a valid variable.

Keep this one and add the leading /:

N8N_RESTRICT_FILE_ACCESS_TO: /home/user/batch_storage

Now, in the Read File node, use File Path and Name like this:

 /home/user/batch_storage/your_file.idk

Make sure the file path is written correctly..