## 观察到的行为 在本地框架代码中进行手工验证后,默认暂时性错误分类器得到以下结果: - `Error('service unavailable')` 被分类为非暂时性错误。 - `Error('server unavailable')` 被分类为暂时性错误。 <details> <summary>手工复现命令及输出</summary> 在框架仓库根目录执行: ```bash pnpm exec tsx -e "import { defaultIsTransientError } from './packages/core/src/utils/bulk-write.ts'; console.log('classifiedTransient=' + defaultIsTransientError(new Error('service unavailable')))" ``` ```text classifiedTransient=false ``` 对照用例: ```bash pnpm exec tsx -e "import { defaultIsTransientError } from './packages/core/src/utils/bulk-write.ts'; console.log('serverUnavailable=' + defaultIsTransientError(new Error('server unavailable')))" ``` ```text serverUnavailable=true ``` </details> ## 判定依据 - 默认暂时性错误分类器由 #2680 引入。 - 重试函数只有在分类结果为 `true` 时才会继续重试。 - 本地手工验证确认: - `service unavailable` 的分类结果为 `false`; - `server unavailable` 的分类结果为 `true`。 - 尚未测试真实的 Turso/libSQL 错误对象和错误信息。 - SQLite 无法自然复现远程服务不可用故障。 - 尚未验证远程写入已经提交但响应丢失时的重复写入风险。 已经确认本地分类器存在上述行为,但它**目前不是已确认的生产环境错误**。在获得具有生产代表性的证据之前,该问题保持关闭。 建议:需要产品决策。
观察到的行为
在本地框架代码中进行手工验证后,默认暂时性错误分类器得到以下结果:
Error('service unavailable')被分类为非暂时性错误。Error('server unavailable')被分类为暂时性错误。手工复现命令及输出
在框架仓库根目录执行:
对照用例:
判定依据
true时才会继续重试。service unavailable的分类结果为false;server unavailable的分类结果为true。已经确认本地分类器存在上述行为,但它目前不是已确认的生产环境错误。在获得具有生产代表性的证据之前,该问题保持关闭。
建议:需要产品决策。