@@ -27,6 +27,7 @@ use crate::{
2727 handlers:: http:: cluster:: PMETA_STREAM_NAME ,
2828 parseable:: PARSEABLE ,
2929 storage:: { ObjectStorageError , field_stats:: DATASET_STATS_STREAM_NAME } ,
30+ tenants:: TENANT_METADATA ,
3031 utils:: { extract_datetime, human_size:: bytes_to_human_size} ,
3132 validator:: error:: HotTierValidationError ,
3233} ;
@@ -787,6 +788,13 @@ impl HotTierManager {
787788 } ;
788789
789790 for tenant_id in tenants {
791+ // Skip suspended tenants — their hot tier directories are cleaned up on suspension
792+ if let Some ( tid) = tenant_id. as_ref ( )
793+ && TENANT_METADATA . is_workspace_suspended ( tid)
794+ {
795+ continue ;
796+ }
797+
790798 if !self . check_stream_hot_tier_exists ( PMETA_STREAM_NAME , & tenant_id) {
791799 let mut stream_hot_tier = StreamHotTier {
792800 version : Some ( CURRENT_HOT_TIER_VERSION . to_string ( ) ) ,
@@ -810,6 +818,13 @@ impl HotTierManager {
810818 vec ! [ None ]
811819 } ;
812820 for tenant_id in tenants {
821+ // Skip suspended tenants — their hot tier directories are cleaned up on suspension
822+ if let Some ( tid) = tenant_id. as_ref ( )
823+ && TENANT_METADATA . is_workspace_suspended ( tid)
824+ {
825+ continue ;
826+ }
827+
813828 // Check if pstats hot tier already exists
814829 if !self . check_stream_hot_tier_exists ( DATASET_STATS_STREAM_NAME , & tenant_id) {
815830 // Check if pstats stream exists in storage by attempting to load it
0 commit comments