Description
Issue Title: Error Object Null in Redis Caching Function
Issue Description:
I encountered an issue with the setCache function in my application while trying to cache data using Redis. The issue is that when an error occurs within the function, the error object is unexpectedly null, and the error details are not being logged or displayed properly in the catch block or console.log.
Reproduction Steps:
- Call the
setCache function with valid parameters.
- Observe that an exception is thrown, but the
error object within the catch block is null.
- The expected behavior is that the error object should contain information about the error, including a stack trace and error message.
Code Sample:
export const client = createClient({url: Config.env(REDIS_CONNECTION_URL)});
export const setCache = async (key: string, value: unknown, defaultExpiration: number = null): Promise<void> => {
try {
if (defaultExpiration) {
await client.SET(key, JSON.stringify(value), {
EX: defaultExpiration
});
} else {
await client.SET(key, JSON.stringify(value));
}
} catch (error) {
console.log("Failed to insert item to redis", {
key,
value,
redisError: error,
defaultExpiration,
errorDebug: "try-catch"
});
}
};
Expected Behavior:
- When an error occurs during the Redis caching operation, the
catch block should capture the error object with relevant error details.
- The
console.log statement within the catch block should output the error details, including error message and stack trace.
Actual Behavior:
- When an error occurs, the
catch block is executed, but the error object is null.
- The
console.log statement outputs incomplete information, as the redisError field contains null.
Additional Information:
- I have verified that the Redis client is properly initialized and connected to the Redis server.
- I have tried logging the error using both
console.log and console.error within the catch block, but the error object remains null.
Possible Solution:
I suspect that there might be an issue with the way the Redis client or the Promise rejection is being handled within the library. I've followed best practices for error handling and asynchronous programming, but the issue persists.
Node.js Version
v19.6.0
Redis Server Version
6.2.6
Node Redis Version
redis@4.6.7
Platform
macOS
Logs
No response
Description
Issue Title: Error Object Null in Redis Caching Function
Issue Description:
I encountered an issue with the
setCachefunction in my application while trying to cache data using Redis. The issue is that when an error occurs within the function, the error object is unexpectedlynull, and the error details are not being logged or displayed properly in the catch block orconsole.log.Reproduction Steps:
setCachefunction with valid parameters.errorobject within the catch block isnull.Code Sample:
Expected Behavior:
catchblock should capture the error object with relevant error details.console.logstatement within thecatchblock should output the error details, including error message and stack trace.Actual Behavior:
catchblock is executed, but theerrorobject isnull.console.logstatement outputs incomplete information, as theredisErrorfield containsnull.Additional Information:
console.logandconsole.errorwithin thecatchblock, but the error object remainsnull.Possible Solution:
I suspect that there might be an issue with the way the Redis client or the Promise rejection is being handled within the library. I've followed best practices for error handling and asynchronous programming, but the issue persists.
Node.js Version
v19.6.0
Redis Server Version
6.2.6
Node Redis Version
redis@4.6.7
Platform
macOS
Logs
No response