Thunder Client发送POST请求返回500 出现UnknownReplWriteConcern错误
问题核心错误信息
{ "code": 79, "codeName": "UnknownReplWriteConcern", "errInfo": { "writeConcern": { "w": "majority;", "wtimeout": 0, "provenance": "clientSupplied" } }, "result": { "n": 1, "opTime": { "ts": { "$timestamp": "7022899934215012355" }, "t": 99 }, "electionId": "7fffffff0000000000000063", "ok": 1, "writeConcernError": { "code": 79, "codeName": "UnknownReplWriteConcern", "errmsg": "No write concern mode named 'majority;' found in replica set configuration", "errInfo": { "writeConcern": { "w": "majority;", "wtimeout": 0, "provenance": "clientSupplied" } } }, "$clusterTime": { "clusterTime": { "$timestamp": "7022899934215012355" }, "signature": { "hash": "/gnrM/bYkyRYi4XXXmEnkaLJJpg=", "keyId": { "low": 1, "high": 1620408145, "unsigned": false } } }, "operationTime": { "$timestamp": "7022899934215012355" } } }
错误根因
- 该错误是MongoDB副本集抛出的写入配置不识别错误,和Thunder Client、Postman工具本身无关
- 报错提示明确:副本集配置中不存在名为
majority;的写入关注模式,你提交的写入关注参数w多了一个多余的尾部分号 - 参数来源为客户端侧主动提供,非MongoDB服务端默认配置问题
修复步骤
- 若你直接在API工具中配置了
writeConcern相关的请求参数/头字段,直接把majority;的尾部分号删除,改为合法值majority即可 - 若请求会转发到自行开发的后端服务,由后端拼接MongoDB操作参数:
- 检查后端MongoDB连接配置、写入操作的
writeConcern参数定义,删除w值的多余分号 - 若该参数通过环境变量注入,检查环境变量的值是否意外携带了分号、空格等多余字符
- 检查后端MongoDB连接配置、写入操作的
- 临时验证可将
w参数值改为数值1,仅要求主节点写入确认,先验证链路正常后再调整为多数节点确认策略
内容的提问来源于stack exchange,提问作者yong diago
相关产品推荐
相关产品推荐

