We’re trying to install the Jitsi App from the Rocket.Chat Marketplace, using the following environment:
Rocket.Chat: 7.5.1
Apps Engine: 1.50.0
Node.js: 22.13.0 (but the workspace reports 22.15.0, unclear why)
Deno: 1.46.3
MongoDB: 7.0.18
Ubuntu: 20.04
The app fails to install and crashes during execution with multiple Deno runtime errors.
The first error we encountered was:
Relative import path “uuid” not prefixed with / or ./ or ../
After inspecting the app code, we found it uses Node.js-style imports like:
import { v1 as uuid } from ‘uuid’;
These are not valid in a Deno environment, which Rocket.Chat uses to execute Apps. Deno requires imports to be prefixed with ./
, ../
, or to be full URLs. We had to manually rewrite several imports to something like:
import { v1 as uuid } from ‘https://esm.sh/uuid@9.0.0’;
Later, we encountered other errors, such as:
Unrecognized message type JsonRpcParsed {
payload: JsonRpcError { message: ‘Invalid params’, code: -32602 },
type: ‘invalid’
}
We added debugging statements inside main.ts
(which acts as the entry point to the Apps Engine Deno subprocess) and confirmed the process is launched properly and receives JSON-RPC requests. However, even with logging in place, we couldn’t identify where the malformed request is coming from or why it’s failing with “Invalid params”.
Key questions:
- Why is a Marketplace app published with imports that are incompatible with the Deno runtime Rocket.Chat itself enforces?
- Is there a validation or testing step that Marketplace apps go through before approval?
- What’s the recommended approach to debug
JsonRpcError -32602
(invalid params) when the call source isn’t exposed in logs?
Any insights or official guidance would be appreciated — especially if there’s a better-supported way to patch or work around these issues without having to rewrite parts of the app manually.