diff --git a/src/plugins/intel_npu/src/plugin/npuw/weights_bank.cpp b/src/plugins/intel_npu/src/plugin/npuw/weights_bank.cpp index 2a79bf33ef9a53..51cf76020d81a1 100644 --- a/src/plugins/intel_npu/src/plugin/npuw/weights_bank.cpp +++ b/src/plugins/intel_npu/src/plugin/npuw/weights_bank.cpp @@ -126,7 +126,7 @@ std::shared_ptr BankManager::getBank(const std::string& bank_name, std::lock_guard guard(m_mutex); auto iter = m_bank_map.find(bank_name); - if (iter == m_bank_map.end()) { + if (iter == m_bank_map.end() || iter->second.expired()) { auto bank = std::make_shared(core, alloc_device); m_bank_map[bank_name] = bank; return bank;