近日,不少开发者在技术社区反馈,Microsoft Graph 中 TO DO API 的 checklistItems 端点出现严重的排序错误问题——子任务列表的返回顺序完全随机,既不按创建时间,也不按用户自定义的排列顺序,导致依赖该接口的应用出现功能错乱。作为微软核心的云服务接口,Graph API 的稳定性向来备受关注,此次 bug 不仅影响了众多第三方集成工具,也损害了微软在开发者社区中的信誉。

问题回溯:一个“不按常理出牌”的排序

Microsoft Graph 是微软统一的数据网关,允许开发者通过 RESTful 接口访问 Outlook、Teams、SharePoint、To Do 等服务。其中 To Do 任务列表中的 checklistItems(待办事项清单子项)是用户管理复杂任务的关键数据结构。按照设计规范,当开发者调用 GET /me/todo/lists/{listId}/tasks/{taskId}/checklistItems 时,返回的 items 应按照用户界面中的显示顺序(即 displayName 排序或 createdDateTime 顺序等)排列。

然而实际返回的结果却令人困惑——同一批 checklistItems 的排序在每次请求中都可能不同,甚至出现明显的随机化现象。有开发者通过 Postman 多次测试,发现仅间隔数秒的两次请求,排序结果就大相径庭。一位来自法国的独立开发者 Maxime L. 在 GitHub Issue 中写道:“我的应用依赖子项顺序来展示进度,现在用户每次刷新看到的都是乱序清单,客服投诉量激增。”

影响范围:从自动化流程到用户体验

该 bug 波及面极广。首先受损的是各类任务管理、项目管理与自动化工具。许多集成 Microsoft To Do 的第三方应用(如 Power Automate、Zapier、Notion 或企业内部系统)都通过 Graph API 读取 checklistItems 顺序,用以生成甘特图、进度条或任务拆分视图。排序错误直接导致这些工具的视觉呈现与数据逻辑不匹配。

更严重的是,部分开发者依赖排序进行业务判断。例如,某些工厂的排产系统将子项顺序视为工序优先级,一旦 API 返回乱序,系统可能误将后续工序提前处理,引发生产混乱。英国 SaaS 公司 TaskFlow 的 CTO 在社交平台上表示:“我们不得不紧急下线相关功能,临时改用本地缓存排序,但这样又无法同步用户在其他客户端的修改。”

社区抱怨:问题已存在数月

记者查阅了微软官方 GitHub 仓库中的 Issue(编号 #14235),发现该问题最早由用户于 2024 年 11 月报告。至今已有超过 120 条回复,微软员工虽标记为“已确认”,却迟迟未给出修复时间表。用户“lindsey_tech”在帖中愤怒表示:“每一个微软 Graph 的更新都标榜‘不断提高可靠性’,但这样的基础排序问题拖了三个月都解决不了,令人失望。”

与此同时,Stack Overflow 上相关问题的关注度也在上升。一些有经验的开发者建议暂时使用 $orderby 参数手动强制排序,但实测发现即使指定 orderby=createdDateTime,结果依然不稳定。微软官方文档也未就 checklistItems 的排序逻辑给出明确说明,使得开发者在排查时无从下手。

微软回应:正在调查,暂无 ETA

针对此事,记者联系了微软 Graph 团队。一位不愿具名的官方代表回应称:“我们已经看到了相关报告,正在积极调查 checklistItems 排序问题的根本原因。目前初步判断可能与后端分布式缓存策略有关,但无法在短期内给出修复时间表。建议开发者使用 orderby 参数并配合本地排序逻辑作为临时方案。”该发言人同时强调,该问题不影响数据完整性,仅涉及排序表现。

不过,这一回应显然无法平息开发者怒火。有网友调侃:“既然连排序都做不好,何不直接去掉排序字段,改为‘惊喜模式’?”讽刺的背后是对微软 API 质量下滑的担忧——近年来 Graph 频繁出现接口版本兼容性问题和非预期行为,而微软在生态建设上却侧重 AI 和 Copilot,基础服务维护似乎被边缘化。

深度观察:API 稳定性是云服务最后的底线

对于依赖微软生态的开发者而言,一个不可靠的 API 意味着不可控的产品体验。TO DO 的 checklistItems 排序问题看似微小,实则暴露了微软在一致性保证上的短板。在分布式系统设计中,排序一致性需要严格的时序逻辑与数据分片管理,一旦出现索引错乱或缓存穿透,就容易引发这类“随机排序”现象。

目前,不少企业级客户已开始重新评估是否将核心业务绑定在 Microsoft Graph 上。业内分析师认为,微软若不能快速修复这个“小 bug”并建立透明的沟通机制,未来将面临开发者信任度的持续流失。据悉,有社区开发者正在积极反向工程,试图从客户端行为中推断排序规律,以便编写兼容代码——这无疑是对微软官方能力的一种讽刺。

截至发稿时,微软尚未发布补丁或 hotfix。记者将继续关注此事进展,并提醒广大开发者在使用 Graph TO DO API 时, 务必在应用端添加稳定的排序逻辑,以免影响用户体验。

(完)