You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory写入CosmosDB报错:REPLACE操作重试耗尽

错误原因分析(Cosmos DB Sink 412前置条件失败)

报错里的412:0状态码是Cosmos DB的前置条件失败,对应乐观并发控制机制触发的冲突,以下是几种可能的原因:

  • 并发更新冲突:目标文档(ID:12345678_TEST)在ADF执行REPLACE操作的同时,被其他业务流程、API或后台任务修改,导致文档的ETag发生变化。ADF的批量REPLACE操作会基于初始读取的ETag验证,ETag不匹配时会重试,重试耗尽后就会抛出这个错误。
  • ADF Sink并发配置过高:如果Cosmos DB Sink的并发写入设置得过高,同一文档可能被多个并行的REPLACE请求同时处理,每个请求拿到的ETag都是旧版本,互相覆盖时触发ETag冲突。
  • Cosmos DB一致性级别影响:如果目标容器使用了强一致性以外的级别(比如会话一致性、最终一致性),ADF读取文档获取ETag时,可能拿到的不是最新版本的ETag,后续执行REPLACE时就会因为ETag不匹配被拒绝。
  • ETag处理逻辑异常:虽然你没修改DataFlow,但可能ADF的Sink配置被意外改动(比如ETag验证策略被修改),或者批量操作中部分文档的ETag在传输过程中丢失/损坏,导致REPLACE时无法通过前置条件校验。

补充:因为你是要更新现有文档的Condition和Description字段,建议确认ADF Sink的写入行为是否设置为Upsert或Replace,如果是Replace必须确保ETag匹配;若想跳过ETag校验,可以在Sink的Cosmos DB高级设置中开启忽略ETag(但生产环境不建议这么做,会丢失并发更新的冲突校验能力)。

内容的提问来源于stack exchange,提问作者Mr. Blond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:27:36