@@ -102,7 +102,8 @@ export class CacheService {
102102 return undefined ;
103103 }
104104 } catch ( error ) {
105- this . logger . error ( `Cache GET error for key ${ key } : ${ error . message } ` ) ;
105+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
106+ this . logger . error ( `Cache GET error for key ${ key } : ${ errMsg } ` ) ;
106107 return undefined ;
107108 }
108109 }
@@ -117,7 +118,8 @@ export class CacheService {
117118 this . trackAccessPattern ( key , 'set' ) ;
118119 this . logger . debug ( `Cache SET: ${ key } with TTL: ${ ttl } s` ) ;
119120 } catch ( error ) {
120- this . logger . error ( `Cache SET error for key ${ key } : ${ error . message } ` ) ;
121+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
122+ this . logger . error ( `Cache SET error for key ${ key } : ${ errMsg } ` ) ;
121123 }
122124 }
123125
@@ -149,7 +151,8 @@ export class CacheService {
149151 this . trackAccessPattern ( key , 'del' ) ;
150152 this . logger . debug ( `Cache DEL: ${ key } ` ) ;
151153 } catch ( error ) {
152- this . logger . error ( `Cache DEL error for key ${ key } : ${ error . message } ` ) ;
154+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
155+ this . logger . error ( `Cache DEL error for key ${ key } : ${ errMsg } ` ) ;
153156 }
154157 }
155158
@@ -162,7 +165,8 @@ export class CacheService {
162165 await this . redisService . flushdb ( ) ;
163166 this . logger . debug ( 'Cache cleared' ) ;
164167 } catch ( error ) {
165- this . logger . error ( `Cache CLEAR error: ${ error . message } ` ) ;
168+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
169+ this . logger . error ( `Cache CLEAR error: ${ errMsg } ` ) ;
166170 }
167171 }
168172
@@ -173,7 +177,8 @@ export class CacheService {
173177 try {
174178 return await this . redisService . keys ( pattern ) ;
175179 } catch ( error ) {
176- this . logger . error ( `Cache KEYS error for pattern ${ pattern } : ${ error . message } ` ) ;
180+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
181+ this . logger . error ( `Cache KEYS error for pattern ${ pattern } : ${ errMsg } ` ) ;
177182 return [ ] ;
178183 }
179184 }
@@ -186,7 +191,8 @@ export class CacheService {
186191 const exists = await this . redisService . exists ( key ) ;
187192 return exists ;
188193 } catch ( error ) {
189- this . logger . error ( `Cache HAS error for key ${ key } : ${ error . message } ` ) ;
194+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
195+ this . logger . error ( `Cache HAS error for key ${ key } : ${ errMsg } ` ) ;
190196 return false ;
191197 }
192198 }
@@ -198,7 +204,8 @@ export class CacheService {
198204 try {
199205 return await this . redisService . ttl ( key ) ;
200206 } catch ( error ) {
201- this . logger . error ( `Cache TTL error for key ${ key } : ${ error . message } ` ) ;
207+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
208+ this . logger . error ( `Cache TTL error for key ${ key } : ${ errMsg } ` ) ;
202209 return - 1 ;
203210 }
204211 }
@@ -361,13 +368,15 @@ export class CacheService {
361368 await this . set ( key , freshValue , options ) ;
362369 return freshValue ;
363370 } catch ( error ) {
364- this . logger . error ( `Cache operation failed for key ${ key } , attempting fallback: ${ error . message } ` ) ;
371+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
372+ this . logger . error ( `Cache operation failed for key ${ key } , attempting fallback: ${ errMsg } ` ) ;
365373
366374 // Try fallback even if cache operations failed
367375 try {
368376 return await fallbackFactory ( ) ;
369377 } catch ( fallbackError ) {
370- this . logger . error ( `Fallback also failed for key ${ key } : ${ fallbackError . message } ` ) ;
378+ const fallbackErrMsg = fallbackError instanceof Error ? fallbackError . message : String ( fallbackError ) ;
379+ this . logger . error ( `Fallback also failed for key ${ key } : ${ fallbackErrMsg } ` ) ;
371380 throw fallbackError ;
372381 }
373382 }
@@ -403,7 +412,8 @@ export class CacheService {
403412 const value = await this . get < T > ( key ) ;
404413 results . push ( value ) ;
405414 } catch ( error ) {
406- this . logger . error ( `Cache MGET error for key ${ key } : ${ error . message } ` ) ;
415+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
416+ this . logger . error ( `Cache MGET error for key ${ key } : ${ errMsg } ` ) ;
407417 results . push ( undefined ) ;
408418 }
409419 }
@@ -472,7 +482,8 @@ export class CacheService {
472482 await this . set ( task . key , value , task . options ) ;
473483 this . logger . log ( `Cache WARM completed: ${ task . key } ` ) ;
474484 } catch ( error ) {
475- this . logger . error ( `Cache WARM failed for key ${ task . key } : ${ error . message } ` ) ;
485+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
486+ this . logger . error ( `Cache WARM failed for key ${ task . key } : ${ errMsg } ` ) ;
476487 }
477488 } ) ;
478489
@@ -563,7 +574,8 @@ export class CacheService {
563574 // This is a simplified approach - in production you might want to use Redis INFO command
564575 memoryUsage = keys . length * 1024 ; // Estimate 1KB per key
565576 } catch ( error ) {
566- this . logger . warn ( `Could not get memory usage: ${ error . message } ` ) ;
577+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
578+ this . logger . warn ( `Could not get memory usage: ${ errMsg } ` ) ;
567579 }
568580
569581 return {
@@ -574,7 +586,8 @@ export class CacheService {
574586 metrics : this . metrics ,
575587 } ;
576588 } catch ( error ) {
577- this . logger . error ( `Failed to get cache stats: ${ error . message } ` ) ;
589+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
590+ this . logger . error ( `Failed to get cache stats: ${ errMsg } ` ) ;
578591 throw error ;
579592 }
580593 }
@@ -667,7 +680,8 @@ export class CacheService {
667680
668681 this . logger . log ( `Published cache invalidation event for key: ${ key } ` ) ;
669682 } catch ( error ) {
670- this . logger . error ( `Failed to publish cache invalidation event: ${ error . message } ` ) ;
683+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
684+ this . logger . error ( `Failed to publish cache invalidation event: ${ errMsg } ` ) ;
671685 }
672686 }
673687
@@ -692,14 +706,16 @@ export class CacheService {
692706 this . logger . log ( `Invalidated cache key from distributed event: ${ event . key } ` ) ;
693707 }
694708 } catch ( error ) {
695- this . logger . error ( `Failed to process cache invalidation event: ${ error . message } ` ) ;
709+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
710+ this . logger . error ( `Failed to process cache invalidation event: ${ errMsg } ` ) ;
696711 }
697712 }
698713 } ) ;
699714
700715 this . logger . log ( 'Subscribed to cache invalidation events for distributed consistency' ) ;
701716 } catch ( error ) {
702- this . logger . error ( `Failed to subscribe to cache invalidation events: ${ error . message } ` ) ;
717+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
718+ this . logger . error ( `Failed to subscribe to cache invalidation events: ${ errMsg } ` ) ;
703719 }
704720 }
705721
@@ -723,7 +739,8 @@ export class CacheService {
723739 const result = await this . redisService . setex ( lockKey , ttl , lockValue ) ;
724740 return result !== null ;
725741 } catch ( error ) {
726- this . logger . error ( `Failed to acquire distributed lock: ${ error . message } ` ) ;
742+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
743+ this . logger . error ( `Failed to acquire distributed lock: ${ errMsg } ` ) ;
727744 return false ;
728745 }
729746 }
@@ -748,7 +765,8 @@ export class CacheService {
748765 const result = await this . redisService . eval ( luaScript , [ lockKey ] , [ nodeId ] ) ;
749766 return result === 1 ;
750767 } catch ( error ) {
751- this . logger . error ( `Failed to release distributed lock: ${ error . message } ` ) ;
768+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
769+ this . logger . error ( `Failed to release distributed lock: ${ errMsg } ` ) ;
752770 return false ;
753771 }
754772 }
@@ -820,13 +838,14 @@ export class CacheService {
820838 const retryDelay = options ?. retryDelay ?? 100 ;
821839 const fallbackOnFailure = options ?. fallbackOnFailure ?? true ;
822840
823- let lastError : Error ;
841+ let lastError : Error | undefined = undefined ;
824842
825843 for ( let attempt = 1 ; attempt <= maxRetries ; attempt ++ ) {
826844 try {
827845 return await operation ( ) ;
828846 } catch ( error ) {
829- this . logger . warn ( `Cache operation attempt ${ attempt } /${ maxRetries } failed: ${ error . message } ` ) ;
847+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
848+ this . logger . warn ( `Cache operation attempt ${ attempt } /${ maxRetries } failed: ${ errMsg } ` ) ;
830849 lastError = error as Error ;
831850
832851 if ( attempt < maxRetries ) {
@@ -884,14 +903,16 @@ export class CacheService {
884903 const refreshedValue = await fallbackFactories [ 0 ] ( ) ; // Use primary source
885904 await this . set ( key , refreshedValue , { ttl : options ?. ttl } ) ;
886905 } catch ( refreshError ) {
887- this . logger . error ( `Background refresh failed: ${ refreshError . message } ` ) ;
906+ const errMsg = refreshError instanceof Error ? refreshError . message : String ( refreshError ) ;
907+ this . logger . error ( `Background refresh failed: ${ errMsg } ` ) ;
888908 }
889909 } ) ;
890910 }
891911
892912 return value ;
893913 } catch ( error ) {
894- this . logger . warn ( `Fallback ${ i + 1 } failed: ${ error . message } ` ) ;
914+ const errMsg = error instanceof Error ? error . message : String ( error ) ;
915+ this . logger . warn ( `Fallback ${ i + 1 } failed: ${ errMsg } ` ) ;
895916
896917 // If this was the last fallback, throw the error
897918 if ( i === fallbackFactories . length - 1 ) {
0 commit comments