Refused to display 'https://n8n.bandofcoders.com/' in a frame because it set 'X-Frame-Options' to 'deny'

Describe the problem/error/question

When I am in the editor, and switch to executions view, I just get the spinning ring of orange circles in the view frame. Instead of the actual execution selected in the execution list on the left.

I turned on inspection to see what console errors there were. And this one stood out to me:

Refused to display ‘https://n8n.bandofcoders.com/’ in a frame because it set ‘X-Frame-Options’ to ‘deny’.

The x-frame line seems to maybe be it, but I am open to interpretation. (FULL CONSOLE OUTPUT AT THE END)

Any ideas on why I can’t seem to load executions? This is not tied to this single workflow, but to all execution views across all workflows.

Might it have something to do with my worker / main setup?

WORKFLOW:

Information on your n8n setup

  • n8n version: Version 1.24.1
  • Database (default: SQLite): postgres
  • n8n EXECUTIONS_PROCESS setting (default: own, main): queue? (I think see docker compose file)
  • Running n8n via (Docker, npm, n8n cloud, desktop app): running via docker compose
  • Operating system: ubuntu lxc on proxmox

Docker-Compose File:

version: ‘3.8’

volumes:
db_storage:
n8n_storage:
redis_storage:

x-shared: &shared
restart: always
image: docker.n8n.io/n8nio/n8n
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_HEALTH_CHECK_ACTIVE=true
# Additions for URI fixes
- N8N_HOST
- WEBHOOK_URL
- WEBHOOK_TUNNEL_URL
- N8N_EDITOR_BASE_URL
- N8N_PROTOCOL
- VUE_APP_URL_BASE_API
# Additions for production env
- GENERIC_TIMEZONE
- NODE_ENV=production
- NODE_OPTIONS=–max-old-space-size=2048
links:
- postgres
- redis
volumes:
- ./n8n_storage:/home/node/.n8n
- ./local-files:/files
- ./.ssh/:/home/node/.ssh/
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy

services:

postgres:
image: postgres:11
restart: always
environment:
- POSTGRES_USER
- POSTGRES_PASSWORD
- POSTGRES_DB
- POSTGRES_NON_ROOT_USER
- POSTGRES_NON_ROOT_PASSWORD
- POSTGRES_SHARED_BUFFERS=2GB
- POSTGRES_MAINTENANCE_WORK_MEM=1GB
- POSTGRES_EFFECTIVE_CACHE_SIZE=2GB
- POSTGRES_WORK_MEM=64MB
- POSTGRES_MAX_PARALLEL_WORKERS=10
- POSTGRES_MAX_PARALLEL_WORKERS_PER_GATHER=5
volumes:
- ./db_storage:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: [‘CMD-SHELL’, ‘pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}’]
interval: 5s
timeout: 5s
retries: 10

redis:
image: redis:6-alpine
restart: always
volumes:
- ./redis_storage:/data
healthcheck:
test: [‘CMD’, ‘redis-cli’, ‘ping’]
interval: 5s
timeout: 5s
retries: 10

n8n:
<<: *shared
ports:
- 5678:5678

n8n-worker:
<<: *shared
command: worker
depends_on:
- n8n

FULL CONSOLE OUTPUT:
vendor-2CfOYFi2.js:1 [Violation] Added non-passive event listener to a scroll-blocking ‘touchstart’ event. Consider marking event handler as ‘passive’ to make the page more responsive. See Chrome Platform Status
Je @ vendor-2CfOYFi2.js:1
Da @ vendor-2CfOYFi2.js:1
Wa @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
j @ vendor-2CfOYFi2.js:1
process @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
vendor-2CfOYFi2.js:1 [Violation] Added non-passive event listener to a scroll-blocking ‘touchstart’ event. Consider marking event handler as ‘passive’ to make the page more responsive. See Chrome Platform Status
Je @ vendor-2CfOYFi2.js:1
Da @ vendor-2CfOYFi2.js:1
Wa @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
j @ vendor-2CfOYFi2.js:1
process @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
vendor-2CfOYFi2.js:1 [Violation] Added non-passive event listener to a scroll-blocking ‘touchstart’ event. Consider marking event handler as ‘passive’ to make the page more responsive. See Chrome Platform Status
Je @ vendor-2CfOYFi2.js:1
Da @ vendor-2CfOYFi2.js:1
Wa @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
j @ vendor-2CfOYFi2.js:1
process @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
vendor-2CfOYFi2.js:1 [Violation] Added non-passive event listener to a scroll-blocking ‘touchstart’ event. Consider marking event handler as ‘passive’ to make the page more responsive. See Chrome Platform Status
Je @ vendor-2CfOYFi2.js:1
Da @ vendor-2CfOYFi2.js:1
Wa @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
j @ vendor-2CfOYFi2.js:1
process @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
L @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
run @ vendor-2CfOYFi2.js:1
G.d.update @ vendor-2CfOYFi2.js:1
G @ vendor-2CfOYFi2.js:1
$ @ vendor-2CfOYFi2.js:1
Y @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
x @ vendor-2CfOYFi2.js:1
B @ vendor-2CfOYFi2.js:1
S @ vendor-2CfOYFi2.js:1
A @ vendor-2CfOYFi2.js:1
O @ vendor-2CfOYFi2.js:1
chrome-error://chromewebdata/:1 Refused to display ‘https://n8n.bandofcoders.com/’ in a frame because it set ‘X-Frame-Options’ to ‘deny’.
[Violation] ‘setInterval’ handler took 111ms
62610:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

Hi @RolandBough :wave: This sounds like it could be an issue with a reverse proxy - a couple of followup questions for you!

  1. Does it happen if you connect directly using the IP of the n8n instance (avoiding any proxies)?
  2. Is the editor url the same as the url being visited?
1 Like
  1. :white_check_mark: It doesn’t look like it happens when I go directly using the IP:5678.
  2. yes, editor URL is the same as the one being visited.

It does sit behind a nginix proxy on the host configured on the lxc container itself. I know just enough to be dangerous, and gather a bunch of info from tutorials, but not enough to be an expert and understand all the ins and outs. Any help is appreciated.

What configuration changes should I make to get around this?

Here is the NGINX config:

server {
listen 80;
listen [::]:80 ipv6only=on;

include /etc/nginx/snippets/letsencrypt.conf;

server_name n8n.bandofcoders.com;

location / {
    return 301 https://n8n.bandofcoders.comm$request_uri;
}

}

server {
server_name n8n.bandofcoders.com;
listen 443 ssl http2;
listen [::]:443 ssl http2 ipv6only=on;

ssl_certificate /etc/letsencrypt/live/n8n.bandofcoders.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.bandofcoders.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/n8n.bandofcoders.com/fullchain.pem;
include /etc/nginx/snippets/ssl.conf;


location / {
    proxy_pass http://localhost:5678;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

}

Hmmm, while I’m no NGINX expert, @RolandBough , could you try adding proxy_set_header X-Frame-Options "SAMEORIGIN";?

If that doesn’t work, @Jon might have a better idea :thinking:

Thanks for the help so far EmeraldHerald.

At least I have a workaround to be able to see the executions (direct to IP as you suggested).

I did try adding that to the nginx config and still have the spinning circle when looking at executions from the standard url.

Any other advice or things to try? I’d be happy to switch to some other proxy scheme, I couldn’t get Traffic to work in the container in queue mode. But if anyone has a working config for any proxy scheme with workers I would gladly adopt such in my docker-compose file.

-Ro

1 Like

@jammycorvus - I suggest you create a thread for your issue separate from this thread with a title to match in order to get the help you seek. Having it buried as a reply to this topic will make it less likely to be seen. - Good Luck! -Ro

1 Like

Hey @RolandBough,

Looking at your response headers you have x-frame-options: DENY set somewhere, Could it be coming from somewhere else in your nginx config?

1 Like