fix: 请求/v1/messages/count_tokens 的CanceledError 不再被记录为ERROR 日志

This commit is contained in:
sususu
2025-11-05 09:47:37 +08:00
parent a2b04eea07
commit 9b15e08624
2 changed files with 18 additions and 1 deletions

View File

@@ -1085,6 +1085,18 @@ router.post('/v1/messages/count_tokens', authenticateApiKey, async (req, res) =>
return res.status(error.httpStatus).json(error.errorPayload) return res.status(error.httpStatus).json(error.errorPayload)
} }
// 客户端断开连接不是错误,使用 INFO 级别
if (error.message === 'Client disconnected') {
logger.info('🔌 Client disconnected during token count request')
if (!res.headersSent) {
return res.status(499).end() // 499 Client Closed Request
}
if (!res.destroyed && !res.finished) {
res.end()
}
return
}
logger.error('❌ Token count error:', error) logger.error('❌ Token count error:', error)
if (!res.headersSent) { if (!res.headersSent) {
return res.status(500).json({ return res.status(500).json({

View File

@@ -317,7 +317,12 @@ class ClaudeConsoleRelayService {
} }
} catch (error) { } catch (error) {
// 处理特定错误 // 处理特定错误
if (error.name === 'AbortError' || error.code === 'ECONNABORTED') { if (
error.name === 'AbortError' ||
error.name === 'CanceledError' ||
error.code === 'ECONNABORTED' ||
error.code === 'ERR_CANCELED'
) {
logger.info('Request aborted due to client disconnect') logger.info('Request aborted due to client disconnect')
throw new Error('Client disconnected') throw new Error('Client disconnected')
} }