Skip to content

Apps Engine does not load – /api/v1/apps returns 404, no "Apps Framework" in logs (Docker Compose, official image 8.3.1) #40178

@Choucheneeee

Description

@Choucheneeee

Description:

We are running Rocket.Chat 8.3.1 using Docker Compose on Ubuntu 22.04. The Apps Engine is not initializing. The /api/v1/apps endpoint returns 404 Not Found, and the logs never show the Loaded the Apps Framework message. Only $node and matrix services appear in the Moleculer broker logs. The Apps menu in the admin UI (/admin/apps) also returns a generic HTML page (React not finding the route).

We have tried many troubleshooting steps (see below) but the problem persists.

Environment:

  • Rocket.Chat version: 8.3.1
  • Deployment method: Docker Compose (official rocketchat/rocket.chat:8.3.1 image)
  • Node.js version (inside container): 22.16.0
  • MongoDB version: 8.2.6 (replica set rs0 configured and healthy)
  • Host OS: Ubuntu 22.04.5 LTS
  • Docker version: 24.0.x (compose v2)

Steps to Reproduce:

  1. Deploy Rocket.Chat using the official rocketchat/rocket.chat:8.3.1 Docker image.
  2. Set environment variables (in docker-compose.yml or .env):
    • APPS_FRAMEWORK_ENABLED=true
    • ENABLE_DEVELOPMENT_MODE=true
  3. Start the stack.
  4. Check logs: docker compose logs rocketchat | grep -i "apps framework" → no output.
  5. Call the API: curl https://your-domain/api/v1/apps404 Not Found.
  6. Access /admin/apps in browser → page loads but shows the main React shell (no Apps Marketplace).

Expected Behavior:

  • Logs should contain: Loaded the Apps Framework and loaded a total of 0 Apps!
  • /api/v1/apps should return {"success":true,"apps":[]}
  • /admin/apps should display the Apps Marketplace.

Actual Behavior:

  • No Apps Framework log lines.
  • API returns 404.
  • Apps menu not functional.

Troubleshooting Already Performed:

  • Verified that @rocket.chat/apps-engine module exists inside the container (/app/bundle/programs/server/npm/node_modules/@rocket.chat/apps-engine).
  • Ensured MongoDB replica set is properly initialized and healthy (rs.status().ok = 1).
  • Forced Apps_Framework_Enabled and Enable_Development_Mode to true directly in MongoDB (rocketchat_settings collection).
  • Tried both OVERWRITE_SETTING_Apps_Framework_Enabled and APPS_FRAMEWORK_ENABLED environment variables.
  • Removed custom entrypoint/command from compose.yml (using the default image entrypoint).
  • Switched from a custom registry image to the official rocketchat/rocket.chat:8.3.1.
  • Stopped all other containers that could cause port conflicts (Traefik, NATS, MongoDB from previous stacks).
  • Verified that moleculer module is missing in the container (Error: Cannot find module 'moleculer' when trying to require it). This may indicate the image is stripped of necessary dependencies.

Logs (relevant portion):

[2026-04-16T12:12:48.871Z] INFO  .../REGISTRY: '$node' service is registered.
[2026-04-16T12:12:48.872Z] INFO  .../REGISTRY: 'matrix' service is registered.
[2026-04-16T12:12:48.872Z] INFO  .../$NODE: Service '$node' started.
[2026-04-16T12:12:48.872Z] INFO  .../MATRIX: Service 'matrix' started.
[2026-04-16T12:12:48.873Z] INFO  .../BROKER: ✔ ServiceBroker with 2 service(s) started successfully.

(No apps service registered.)

Additional Notes:

  • The same behavior occurs with rocketchat/rocket.chat:latest (8.3.2 as of writing).
  • The container is running with user node (UID 1000). Permissions on the apps-engine folder appear correct.
  • No errors related to Apps Engine appear in the logs – it's as if the framework is never started.

Question:

Is there a known issue with the official Docker image where the Apps Engine is disabled or excluded? Are there any additional build-time flags or environment variables required to enable the framework in Docker deployments?

Any help would be greatly appreciated. Thank you.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions