Am upgrading my node version from 12 to 20 version and cls-hook version is 4.2.2
and now am getting the following error
AssertionError [ERR_ASSERTION]: context not currently entered; can’t exit in Nodejs
the following is my cls middleware code
<code>const cls = require('cls-hooked')
//const uuidv4 = require('uuid');
//uuidv4.v4();
const { v4: uuidv4 } = require('uuid');
const clsNamespace = cls.createNamespace('app')
exports.clsMiddleware = (req, res, next) => {
try {
clsNamespace.bind(req)
clsNamespace.bind(res)
const requestID = uuidv4()
clsNamespace.run(() => {
clsNamespace.set('req:x-requestID', requestID);
// other attributes
next()
})
} catch (error) {
console.log(error);
}
}
exports.vars = clsNamespace;
</code>
<code>const cls = require('cls-hooked')
//const uuidv4 = require('uuid');
//uuidv4.v4();
const { v4: uuidv4 } = require('uuid');
const clsNamespace = cls.createNamespace('app')
exports.clsMiddleware = (req, res, next) => {
try {
clsNamespace.bind(req)
clsNamespace.bind(res)
const requestID = uuidv4()
clsNamespace.run(() => {
clsNamespace.set('req:x-requestID', requestID);
// other attributes
next()
})
} catch (error) {
console.log(error);
}
}
exports.vars = clsNamespace;
</code>
const cls = require('cls-hooked')
//const uuidv4 = require('uuid');
//uuidv4.v4();
const { v4: uuidv4 } = require('uuid');
const clsNamespace = cls.createNamespace('app')
exports.clsMiddleware = (req, res, next) => {
try {
clsNamespace.bind(req)
clsNamespace.bind(res)
const requestID = uuidv4()
clsNamespace.run(() => {
clsNamespace.set('req:x-requestID', requestID);
// other attributes
next()
})
} catch (error) {
console.log(error);
}
}
exports.vars = clsNamespace;
and am requiring and using it before any routes
Moreover this error happens as when i hit endpoints in my app.
I have also try to directly use middleware in my main app.js file but still its giving same error like below
<code>AssertionError [ERR_ASSERTION]: context not currently entered; can't exit.
Namespace {
name: 'localsession',
active: null,
_set: [],
id: -1,
_contexts: Map(31) {
2308 => {
_ns_name: 'localsession',
id: 2305,
'request:id': undefined,
'request:x-app-language': 'EN',
},
2309 => {
_ns_name: 'localsession',
id: 2305,
'request:id': undefined,
'request:x-app-language': 'EN',
},
</code>
<code>AssertionError [ERR_ASSERTION]: context not currently entered; can't exit.
Namespace {
name: 'localsession',
active: null,
_set: [],
id: -1,
_contexts: Map(31) {
2308 => {
_ns_name: 'localsession',
id: 2305,
'request:id': undefined,
'request:x-app-language': 'EN',
},
2309 => {
_ns_name: 'localsession',
id: 2305,
'request:id': undefined,
'request:x-app-language': 'EN',
},
</code>
AssertionError [ERR_ASSERTION]: context not currently entered; can't exit.
Namespace {
name: 'localsession',
active: null,
_set: [],
id: -1,
_contexts: Map(31) {
2308 => {
_ns_name: 'localsession',
id: 2305,
'request:id': undefined,
'request:x-app-language': 'EN',
},
2309 => {
_ns_name: 'localsession',
id: 2305,
'request:id': undefined,
'request:x-app-language': 'EN',
},