This works locally, but crashes on Azure App Service. I've tried every possible way of importing managementclient and it fails. I'm also raising a support issue with my account manager.

auth0-mgmt.ts

import { ManagementClient } from "auth0" export async function userNickname(userId: string): Promise<string | null> { const m = new ManagementClient({ domain: process.env.AUTH0_ISSUER_BASE_URL ?? "", clientId: process.env.AUTH0_MANAGEMENT_CLIENT_ID ?? "", clientSecret: process.env.AUTH0_MANAGEMENT_CLIENT_SECRET ?? "", }) try { const user = await m.users.get({ id: userId, fields: "nickname" }) return user.data?.nickname } catch (error) { console.log("Error getting user nickname:", error) return null } } 

Here's the stacktrace:

023-12-13T00:13:17.886814980Z import { ManagementClient } from "auth0" 2023-12-13T00:13:17.886823080Z ^ 2023-12-13T00:13:17.886827981Z 2023-12-13T00:13:17.886832481Z SyntaxError: The requested module 'auth0' does not provide an export named 'ManagementClient' 2023-12-13T00:13:17.886837181Z at ModuleJob._instantiate (node:internal/modules/esm/module_job:131:21) 2023-12-13T00:13:17.886841582Z at async ModuleJob.run (node:internal/modules/esm/module_job:213:5) 2023-12-13T00:13:17.886845982Z at async ModuleLoader.import (node:internal/modules/esm/loader:316:24) 2023-12-13T00:13:17.886850682Z at async loadESM (node:internal/process/esm_loader:34:7) 2023-12-13T00:13:17.886858183Z at async handleMainPromise (node:internal/modules/run_main:66:12) 2023-12-13T00:13:17.894145144Z 2023-12-13T00:13:17.894163946Z Node.js v20.9.0 

Here's my package.json:

{ ... "private": true, "type": "module", ... "dependencies": { ... "auth0": "^4.2.0", 

1 Answer

Turns out, my Azure App Service box had an old file laying around from a really old deploy, called auth0.ts. Wow! Deleting it from wwwroot by sshing into the box fixed this issue.

Now to figure out why the az webapp up deploy command does not remove old files when it deploys! This is quite crazy -- does anyone know why it behaves this way?

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.