For those familiar with Wunderlist, it played an essential role in my approach to managing tasks. Following its acquisition by Microsoft, I smoothly shifted to using Microsoft Todo. This transition was straightforward. Although Microsoft removed some functionalities after rebranding Wunderlist as MS Todo, they introduced the “My Day” feature, which enhanced the user experience with its intuitive design.

When you put MS Todo side by side with other task management applications like Todoist or TickTick, it’s clear that MS Todo falls short in terms of features. Despite this, I’ve continued to use MS Todo for its simplicity. Over time, I’ve entered over 6000 tasks into the Microsoft Todo app. Moreover, the effort and time required to adapt to a new task management app are substantial, and in my view, the cost of switching and habit formation doesn’t justify the benefits. However, it appears that Microsoft’s focus isn’t so much on developing MS Todo as a standalone application but rather on enhancing its integration within the broader Microsoft 365 ecosystem.

In my automation workflows, I frequently utilize IFTTT and Zapier to capture tasks into the MS Todo Inbox. For several months, I’ve been dealing with a persistent bug in MS Todo that seems to have gone unnoticed by many MS Todo users and their integration partners. This issue came to my attention while setting up an IFTTT Applet and using “Create task in task list” MS Todo action. Despite having more than 20 task lists, it only displays the “Flagged email” task list for me. At first, I suspected the problem was with IFTTT, so I contacted their support team. However, after a month of back-and-forth communication, we still didnt reach conclusion.

I noticed similar issues with Zapier and when using the MS Todo Alfred workflow. This made it crystal clear that the problem lies with the Microsoft Graph APIs themselves, rather than with their client-side implementations.

My curiosity piqued and I started going through their API documentation. It appears that Microsoft offers two similar APIs for retrieving all Task lists: List task lists and Get task list delta. The former appears to be more definitive, while the latter is preferred for clients that wish to stay synchronized with the server to enhance performance. To examine the API responses, I utilized the Microsoft Graph Explorer to make calls to both APIs. Below are my findings:

List task lists API

Request

https://graph.microsoft.com/v1.0/me/todo/lists/

Response

{
"value": [

		{
		"@odata.etag": "dummyTag",
		"displayName": "Flagged Emails",
		"isOwner": true,
		"isShared": false,
		"wellknownListName": "flaggedEmails",
		"id": "dummyID"
		}
	]
}

Even though I have 20+ lists in Microsoft Todo, it only gets me “Flagged Emails list”. This is a bug

Get Task Lists API

Request https://graph.microsoft.com/v1.0/me/todo/lists/microsoft.graph.delta()

Response


{
	"displayName": "Flagged Emails",
	"isOwner": true,
	"isShared": false,
	"wellknownListName": "flaggedEmails",
	"id": "dummy"
},

{
	"displayName": "Tasks",
	"isOwner": true,
	"isShared": false,
	"wellknownListName": "defaultList",
	"id": "dummy"
},

{
	"displayName": "List A",
	"isOwner": true,
	"isShared": false,
	"wellknownListName": "none",
	"id": "dummy"
},

{
	"displayName": "List B",
	"isOwner": true,
	"isShared": false,
	"wellknownListName": "none",
	"id": "dummy"
}

This correctly displays all my lists in MS Todo. I’m uncertain whether the Delta API was recently introduced or has been available since the beginning. However, it’s clear that the initial requests from the list taskLists API and the list taskLists delta API follow different patterns.

I found only a single mention of this problem online. Microsoft has yet to notice the issue, which negatively impacts the user experience for some customers. One reason this problem might have remained under the radar is that it primarily affects power users who have multiple task lists, numerous tasks, or have been using MS Todo for an extended period. Regular customers with minimal use of MS Todo are not affected by this issue.

Microsoft doesnt expose easy way to submit bug reports for Microsoft Graph API. However, I have submitted feedback here in Microsoft Graph portal.

Cascading effect

Incorporating abstractions undoubtedly offers benefits in terms of speed and convenience, yet it also introduces costs related to maintenance and traceability. Within a web of API integrations, a single bug at the system’s core can ripple through to all its clients and, ultimately, impact the business. Furthermore, the cost of diagnosing errors becomes significant when integration partners are in the dark about the root cause of an issue. As a customer, my instinct would be to report a problem to IFTTT, never suspecting that the real issue lies within the Microsoft API itself. When a minor bug occurs in a tool designed for further abstraction, it’s like tossing a pebble into a pond: the resulting ripples extend broadly, influencing not just an individual user but the entire network of those connected to the system.

This makes me wonder and appreciate how automation tools(eg. IFTTT, Zapier, Make, Tray.io) runs their operations while maintaining more than 5k+ API integrations accross more than 800+ different SaaS services.