NodeJS function throws error `Error [ERR_REQUIRE_ESM]: require() of ES Module...`
- 1
- Self Hosted
- Functions

@Meldiron @loks0n Some of my nodejs functions throw the following error on execution:
Error [ERR_REQUIRE_ESM]: require() of ES Module /usr/code-start/src/index.js from /usr/local/src/server.js not supported.
Instead change the require of index.js in /usr/local/src/server.js to a dynamic import() which is available in all CommonJS modules.
at Hook._require.Module.require (/usr/local/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39)
at /usr/local/src/server.js:55:28

Example that works: appwrite.json
{
"$id": "cleanup_kas_sessions",
"name": "cleanup_kas_sessions",
"runtime": "node-18.0",
"execute": [],
"events": [],
"schedule": "",
"timeout": 15,
"enabled": true,
"logging": true,
"entrypoint": "src/main.js",
"commands": "npm install",
"ignore": [
"node_modules",
".npm"
],
"path": "functions/cleanup_kas_sessions"
}
main.js (function file)
import { Client, Databases, Query } from 'node-appwrite';
export default async ({ req, res, log, error }) => {
log('run function cleanup_kas_sessions');
// do some stuff
...
Example that doesn't work: appwrite.json
{
"$id": "authenticate_kas",
"name": "authenticate_kas",
"runtime": "node-18.0",
"path": "functions/authenticate_kas",
"entrypoint": "src/index.js",
"commands": "npm install",
"ignore": [
"node_modules",
".npm"
],
"execute": [],
"events": [],
"schedule": "",
"timeout": 15,
"enabled": true,
"logging": true
},
index.js (function file)
import { Client, Databases } from "node-appwrite";
import { v4 as uuidv4 } from "uuid";
import * as superagent from "superagent"; // even if I comment this out it doesn't work
export default async ({ req, res, log, error }) => {
log("run function authenticate_kas"); // this is never being called
// do some stuff
In both functions package.json I have the entry "type": "module",
.
Tried to put appwrite container down and up. Deployed several times.

What if you change the file name and the entrypoint in the appwrite.json to src/main.js?

@Steven I just tried that. Didn't help.

I also see this in the settings menu of the function where the error occurs. I updated the code regarding this list https://appwrite.io/docs/functions-develop#upgrade I don't know what else could be "not up to date".

lol, I created a new function nodetest
and copied the complete codefile and the dependencies to the new function, deployed and it works 😄

So whats going on? 🙂

Ohhhh ya. Your old function must stay in the old format...

what do you mean by format?

function main(req, res)

Can you create an issue for clarifying how to upgrade functions?

Yea of course. Here or in github?

GitHub please

ok

Recommended threads
- Direct Upgrade from Appwrite v1.5.11 to ...
I'm on Appwrite v1.5.11. Can I upgrade directly to v1.6.2?
- error code:524 for functions running lon...
We are having this issue, no longer the function runtime or code, if it goes longer than 1 minute, there's no logs at all, just this error: **error code: 524**
- PKCE, Etsy, OIDC, External OAuth provide...
first, thanks for creating and maintaining this software. I'm almost glad i couldn't convince my (wise and wonderful) senior devs to try pocketbase on productio...
