diff --git a/src/services/claudeConsoleAccountService.js b/src/services/claudeConsoleAccountService.js index 61237e06..ad773c9b 100644 --- a/src/services/claudeConsoleAccountService.js +++ b/src/services/claudeConsoleAccountService.js @@ -149,6 +149,12 @@ class ClaudeConsoleAccountService { for (const key of keys) { const accountData = await client.hgetall(key) if (accountData && Object.keys(accountData).length > 0) { + if (!accountData.id) { + logger.warn(`⚠️ 检测到缺少ID的Claude Console账户数据,执行清理: ${key}`) + await client.del(key) + continue + } + // 获取限流状态信息 const rateLimitInfo = this._getRateLimitInfo(accountData) diff --git a/src/services/claudeConsoleRelayService.js b/src/services/claudeConsoleRelayService.js index de919a86..d241a283 100644 --- a/src/services/claudeConsoleRelayService.js +++ b/src/services/claudeConsoleRelayService.js @@ -774,11 +774,15 @@ class ClaudeConsoleRelayService { async _updateLastUsedTime(accountId) { try { const client = require('../models/redis').getClientSafe() - await client.hset( - `claude_console_account:${accountId}`, - 'lastUsedAt', - new Date().toISOString() - ) + const accountKey = `claude_console_account:${accountId}` + const exists = await client.exists(accountKey) + + if (!exists) { + logger.debug(`🔎 跳过更新已删除的Claude Console账号最近使用时间: ${accountId}`) + return + } + + await client.hset(accountKey, 'lastUsedAt', new Date().toISOString()) } catch (error) { logger.warn( `⚠️ Failed to update last used time for Claude Console account ${accountId}:`,