Skip to content

[bug]: node:internal/modules/cjs/loader:1404 > Error: Cannot find module '/app/web/server.js' after 0.27.1 > 0.28.0 update (community) #7517

@flotpg

Description

@flotpg

Current behavior

After 0.27.1 > 0.28.0 update (community), plane won't start

web_1          | node:internal/modules/cjs/loader:1404
web_1          |   throw err;
web_1          |   ^
web_1          |
web_1          | Error: Cannot find module '/app/web/server.js'
web_1          |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
web_1          |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
web_1          |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
web_1          |     at Function._load (node:internal/modules/cjs/loader:1211:37)
web_1          |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
web_1          |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
web_1          |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
web_1          |     at node:internal/main/run_main_module:36:49 {
web_1          |   code: 'MODULE_NOT_FOUND',
web_1          |   requireStack: []
web_1          | }
web_1          |
web_1          | Node.js v22.17.1
plane-app-preview_web_1 exited with code 1
space_1        | node:internal/modules/cjs/loader:1404
space_1        |   throw err;
space_1        |   ^
space_1        |
space_1        | Error: Cannot find module '/app/space/server.js'
space_1        |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
space_1        |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
space_1        |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
space_1        |     at Function._load (node:internal/modules/cjs/loader:1211:37)
space_1        |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
space_1        |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
space_1        |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
space_1        |     at node:internal/main/run_main_module:36:49 {
space_1        |   code: 'MODULE_NOT_FOUND',
space_1        |   requireStack: []
space_1        | }
space_1        |
space_1        | Node.js v22.17.1
plane-app-preview_space_1 exited with code 1
migrator_1     |   Applying db.0041_cycle_sort_order_issuecomment_access_and_more... OK
admin_1        | node:internal/modules/cjs/loader:1404
admin_1        |   throw err;
admin_1        |   ^
admin_1        |
admin_1        | Error: Cannot find module '/app/admin/server.js'
admin_1        |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
admin_1        |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
admin_1        |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
admin_1        |     at Function._load (node:internal/modules/cjs/loader:1211:37)
admin_1        |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
admin_1        |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
admin_1        |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
admin_1        |     at node:internal/main/run_main_module:36:49 {
admin_1        |   code: 'MODULE_NOT_FOUND',
admin_1        |   requireStack: []
admin_1        | }
admin_1        |
admin_1        | Node.js v22.17.1
migrator_1     |   Applying db.0042_alter_analyticview_created_by_and_more... OK
plane-app-preview_admin_1 exited with code 1
live_1         | node:internal/modules/cjs/loader:1404
live_1         |   throw err;
live_1         |   ^
live_1         |
live_1         | Error: Cannot find module '/app/live/dist/server.js'
live_1         |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
live_1         |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
live_1         |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
live_1         |     at Function._load (node:internal/modules/cjs/loader:1211:37)
live_1         |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
live_1         |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
live_1         |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
live_1         |     at node:internal/main/run_main_module:36:49 {
live_1         |   code: 'MODULE_NOT_FOUND',
live_1         |   requireStack: []
live_1         | }
live_1         |
live_1         | Node.js v22.17.1
plane-app-preview_live_1 exited with code 1
migrator_1     |   Applying db.0043_alter_analyticview_created_by_and_more... OK
plane-app-preview_proxy_1 exited with code 0
api_1          | Waiting for database migrations to complete...
migrator_1     |   Applying db.0044_auto_20230913_0709... OK
worker_1       | Waiting for database migrations to complete...
migrator_1     |   Applying db.0045_issueactivity_epoch_workspacemember_issue_props_and_more... OK
beat-worker_1  | Waiting for database migrations to complete...
api_1          | Waiting for database migrations to complete...
worker_1       | Waiting for database migrations to complete...
beat-worker_1  | Waiting for database migrations to complete...
api_1          | Waiting for database migrations to complete...
worker_1       | Waiting for database migrations to complete...
beat-worker_1  | Waiting for database migrations to complete...
migrator_1     |   Applying db.0046_label_sort_order_alter_analyticview_created_by_and_more... OK
migrator_1     |   Applying db.0047_webhook_apitoken_description_apitoken_expired_at_and_more... OK
web_1          | node:internal/modules/cjs/loader:1404
web_1          |   throw err;
web_1          |   ^
web_1          |
web_1          | Error: Cannot find module '/app/web/server.js'
web_1          |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
web_1          |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
web_1          |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
web_1          |     at Function._load (node:internal/modules/cjs/loader:1211:37)
web_1          |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
web_1          |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
web_1          |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
web_1          |     at node:internal/main/run_main_module:36:49 {
web_1          |   code: 'MODULE_NOT_FOUND',
web_1          |   requireStack: []
web_1          | }
web_1          |
web_1          | Node.js v22.17.1
plane-app-preview_web_1 exited with code 1
migrator_1     |   Applying db.0048_auto_20231116_0713... OK
migrator_1     |   Applying db.0049_auto_20231116_0713... OK
space_1        | node:internal/modules/cjs/loader:1404
space_1        |   throw err;
space_1        |   ^
space_1        |
space_1        | Error: Cannot find module '/app/space/server.js'
space_1        |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
space_1        |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
space_1        |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
space_1        |     at Function._load (node:internal/modules/cjs/loader:1211:37)
space_1        |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
space_1        |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
space_1        |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
space_1        |     at node:internal/main/run_main_module:36:49 {
space_1        |   code: 'MODULE_NOT_FOUND',
space_1        |   requireStack: []
space_1        | }
space_1        |
space_1        | Node.js v22.17.1
plane-app-preview_space_1 exited with code 1
migrator_1     |   Applying db.0050_user_use_case_alter_workspace_organization_size... OK
admin_1        | node:internal/modules/cjs/loader:1404
admin_1        |   throw err;
admin_1        |   ^
admin_1        |
admin_1        | Error: Cannot find module '/app/admin/server.js'
admin_1        |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
admin_1        |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
admin_1        |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
admin_1        |     at Function._load (node:internal/modules/cjs/loader:1211:37)
admin_1        |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
admin_1        |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
admin_1        |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
admin_1        |     at node:internal/main/run_main_module:36:49 {
admin_1        |   code: 'MODULE_NOT_FOUND',
admin_1        |   requireStack: []
admin_1        | }
admin_1        |
admin_1        | Node.js v22.17.1
plane-app-preview_admin_1 exited with code 1
live_1         | node:internal/modules/cjs/loader:1404
live_1         |   throw err;
live_1         |   ^
live_1         |
live_1         | Error: Cannot find module '/app/live/dist/server.js'
live_1         |     at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
live_1         |     at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
live_1         |     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
live_1         |     at Function._load (node:internal/modules/cjs/loader:1211:37)
live_1         |     at TracingChannel.traceSync (node:diagnostics_channel:322:14)
live_1         |     at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
live_1         |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
live_1         |     at node:internal/main/run_main_module:36:49 {
live_1         |   code: 'MODULE_NOT_FOUND',
live_1         |   requireStack: []
live_1         | }
live_1         |
live_1         | Node.js v22.17.1
plane-app-preview_live_1 exited with code 1
plane-app-preview_proxy_1 exited with code 0

Compose File: I just replaced 0.27.1 with 0.28.0 followed by a docker compose pull && docker compose up -d

docker-compose.yaml

x-app-env: &app-env
  environment:
    - NGINX_PORT=${NGINX_PORT:-80}
    - WEB_URL=${WEB_URL:-http://localhost}
    - DEBUG=${DEBUG:-0}
    - SENTRY_DSN=${SENTRY_DSN:-""}
    - SENTRY_ENVIRONMENT=${SENTRY_ENVIRONMENT:-"production"}
    - CORS_ALLOWED_ORIGINS=${CORS_ALLOWED_ORIGINS:-}
    # Gunicorn Workers
    - GUNICORN_WORKERS=${GUNICORN_WORKERS:-1}
    #DB SETTINGS
    - PGHOST=${PGHOST:-plane-db}
    - PGDATABASE=${PGDATABASE:-plane}
    - POSTGRES_USER=${POSTGRES_USER:-plane}
    - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-plane}
    - POSTGRES_DB=${POSTGRES_DB:-plane}
    - POSTGRES_PORT=${POSTGRES_PORT:-5432}
    - PGDATA=${PGDATA:-/var/lib/postgresql/data}
    - DATABASE_URL=${DATABASE_URL:-postgresql://plane:plane@plane-db/plane}
    # REDIS SETTINGS
    - REDIS_HOST=${REDIS_HOST:-plane-redis}
    - REDIS_PORT=${REDIS_PORT:-6379}
    - REDIS_URL=${REDIS_URL:-redis://plane-redis:6379/}

    # RabbitMQ Settings
    - RABBITMQ_HOST=${RABBITMQ_HOST:-plane-mq}
    - RABBITMQ_PORT=${RABBITMQ_PORT:-5672}
    - RABBITMQ_DEFAULT_USER=${RABBITMQ_USER:-plane}
    - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD:-plane}
    - RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST:-plane}
    - RABBITMQ_VHOST=${RABBITMQ_VHOST:-plane}
    - AMQP_URL=${AMQP_URL:-amqp://plane:plane@plane-mq:5672/plane}
    # Application secret
    - SECRET_KEY=${SECRET_KEY:--------------------------------------------}
    # DATA STORE SETTINGS
    - USE_MINIO=${USE_MINIO:-1}
    #- AWS_REGION=${AWS_REGION:-""}
    - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-"access-key"}
    - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-"secret-key"}
    - AWS_S3_ENDPOINT_URL=${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000}
    - AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads}
    - MINIO_ROOT_USER=${MINIO_ROOT_USER:-"access-key"}
    - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-"secret-key"}
    - BUCKET_NAME=${BUCKET_NAME:-uploads}
    - FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880}
    # Live server env
    - API_BASE_URL=${API_BASE_URL:-http://api:8000}

services:
  web:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-frontend:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: node web/server.js web
    deploy:
      replicas: ${WEB_REPLICAS:-1}
    depends_on:
      - api
      - worker

  space:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-space:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: node space/server.js space
    deploy:
      replicas: ${SPACE_REPLICAS:-1}
    depends_on:
      - api
      - worker
      - web

  admin:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-admin:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: node admin/server.js admin
    deploy:
      replicas: ${ADMIN_REPLICAS:-1}
    depends_on:
      - api
      - web

  live:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-live:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: node live/dist/server.js live
    deploy:
      replicas: ${LIVE_REPLICAS:-1}
    depends_on:
      - api
      - web

  api:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-backend:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: ./bin/docker-entrypoint-api.sh
    deploy:
      replicas: ${API_REPLICAS:-1}
    volumes:
      - logs_api:/code/plane/logs
    depends_on:
      - plane-db
      - plane-redis
      - plane-mq


  worker:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-backend:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: ./bin/docker-entrypoint-worker.sh
    volumes:
      - logs_worker:/code/plane/logs
    depends_on:
      - api
      - plane-db
      - plane-redis
      - plane-mq

  beat-worker:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-backend:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    command: ./bin/docker-entrypoint-beat.sh
    volumes:
      - logs_beat-worker:/code/plane/logs
    depends_on:
      - api
      - plane-db
      - plane-redis
      - plane-mq

  migrator:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-backend:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: "no"
    command: ./bin/docker-entrypoint-migrator.sh
    volumes:
      - logs_migrator:/code/plane/logs
    depends_on:
      - plane-db
      - plane-redis

  plane-db:
    <<: *app-env
    image: postgres:15.7-alpine
    pull_policy: if_not_present
    restart: unless-stopped
    command: postgres -c 'max_connections=1000'
    volumes:
      - pgdata:/var/lib/postgresql/data

  plane-redis:
    <<: *app-env
    image: valkey/valkey:7.2.5-alpine
    pull_policy: if_not_present
    restart: unless-stopped
    volumes:
      - redisdata:/data

  plane-mq:
    <<: *app-env
    image: rabbitmq:3.13.6-management-alpine
    restart: always
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq

  plane-minio:
    <<: *app-env
    image: minio/minio:latest
    pull_policy: if_not_present
    restart: unless-stopped
    command: server /export --console-address ":9090"
    volumes:
      - uploads:/export

# Comment this if you already have a reverse proxy running
  proxy:
    <<: *app-env
    image: ${DOCKERHUB_USER:-makeplane}/plane-proxy:v0.28.0
    platform: ${DOCKER_PLATFORM:-}
    pull_policy: if_not_present
    restart: unless-stopped
    ports:
      - ${NGINX_PORT}:80
    depends_on:
      - web
      - api
      - space

volumes:
  pgdata:
  redisdata:
  uploads:
  logs_api:
  logs_worker:
  logs_beat-worker:
  logs_migrator:
  rabbitmq_data:

Steps to reproduce

0.27.1 > 0.28.0 update

Environment

Production

Browser

Any

Variant

Self-hosted

Version

0.28.0

Metadata

Metadata

Assignees

Labels

🐛bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions