Add Deno to Rocket.Chat for Apps to work
-
With the recent update to Rocket.Chat (2.54.2), app installs are breaking again. This issue did not occur in version 2.54.1.
Below is the error message encountered:
Caused by: 0: Error creating '/app/code/bundle/programs/server/npm/node_modules/@rocket.chat/apps-engine/.deno-cache/npm/registry.npmjs.org/uuid/8.3.2'. 1: Read-only file system (os error 30)According to this forum post, only the
/app/data,/run, and/tmpdirectories are writable. However, Deno (or Rocket.Chat) attempts to write to/app/code, which is read-only.Is there a workaround or temporary solution to allow writing to
/app/codeuntil this issue is resolved? -
N nebulon marked this topic as a question on
-
N nebulon has marked this topic as solved on
-
Hi guys, I think we need to revive this post again:
The Rocket.Chat Apps Engine is broken on both Cloudron package versions 3.1.0 (upstream 8.2.1) and 3.2.0 (upstream 8.3.1). No marketplace apps can be installed or run.
Error logs:
error: failed reading lockfile '/app/code/bundle/programs/server/npm/node_modules/@rocket.chat/apps-engine/deno-runtime/deno.lock'Caused by:
Error getting response at https://registry.npmjs.org/@msgpack/msgpack for package "@msgpack/msgpack": An npm specifier not found in cache: "@msgpack/msgpack", --cached-only is specified.Root cause:
The deno.lock file is located in /app/code/, which is on the read-only Docker image layer. When Deno tries to resolve the @msgpack/msgpack npm dependency, it can't find it in cache and can't update the lockfile because the filesystem is read-only (Read-only file system, os error 30).This means the Deno runtime can't start app subprocesses, so all marketplace apps (e.g. Giphy) fail with compiler errors and crash-loop.
Steps to reproduce:
Install or update to Rocket.Chat 3.1.0 or 3.2.0 on Cloudron
Go to Admin > Apps > Marketplace
Try to install any app (e.g. Giphy)
Installation fails with "The App had compiler errors, can not enable it"Suggested fix:
Either pre-cache the @msgpack/msgpack npm package in the Docker image at build time, or move the Deno cache/lockfile to a writable location (e.g. /app/data/ or /tmp/).Thanks!
-
Hello @zigmasdirigeant
With version 3.2.2 this issue is resolved.
Please update your @rocket.chat app and try to install your marketplace module.If any issues still persist, please report back here.
-
App install appears broken again as of Rocket.Chat 8.4.3. Marketplace apps appear to start installing but then hang.
Error logs:
Subprocess stderr error: JSR package manifest for '@std/io' failed to load. Specifier not found in cache: "https://jsr.io/@std/io/meta.json", --cached-only is specified. at file:///tmp/apps-engine-temp/deno-runtime/lib/metricsCollector.ts:1:26Reproduce:
Cloudron: 9.2.0
Rocket Chat 8.4.3
Install any app from marketplace.
Install appears to start but then hangs with the install button circle spinning indefinitely.Thank you for taking a look!
-
Hello @panda
I have reproduced the issue and I am looking into it.Findings:
Rocket.Chat8.4.xaddedlib/metricsCollector.ts(imported bymain.ts:23), which pulls in@std/iovia JSR. Earlier bundles didn't exercise that path the same way, so the empty cache went unnoticed the recent RC update is what tripped it.Testing now if we can create that cache in the build time or if this needs to be dynamic read-write.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login