OneNoteToWiki current Limitations

OneNoteToWiki: MVP Release and Future Enhancements

We are excited to announce the release of OneNoteToWiki as a Minimum Viable Product (MVP). As with any MVP, there are a few features and functionalities that are currently limited, and we are actively working on enhancing and expanding these capabilities. Our goal is to continually improve the app based on user feedback and our development roadmap, delivering a more comprehensive and robust tool for synchronizing OneNote content with Atlassian Confluence.

Current Limitations of Our App

Our app currently faces limitations due to the Microsoft Graph API, specifically its rate limits. Understanding these limits is essential for users to optimize their experience with our app.

Microsoft Graph API Rate Limits

The rate limits for the Microsoft Graph API are as follows:

Limit TypeLimit per App per User (Delegated Context)Limit per App (App-Only Context)
Requests Rate120 requests per 1 minute and 400 per 1 hour240 requests per 1 minute and 800 per 1 hour

With batching, it is theoretically possible to achieve up to 8000 requests per hour (400 batches of 20 requests each). However, it’s important to note that requests against notebooks and sections cannot be batched. Additionally, image uploads are currently not batched. At the moment only page requests are batched.

Another significant limitation is that the Microsoft Graph API does not return a Retry-After header when the rate limits are exceeded. If you exceed the minute limit, your requests are throttled for approximately 15 minutes. If you exceed the hourly limit, you will be throttled until the end of the hour.

Due to these limitations, our current recommendation is to synchronize smaller notebooks first and handle larger ones individually with some patience. This approach helps manage the rate limits effectively and ensures a smoother synchronization process.

Future Improvements

We are actively working on improving these rate limits by offering our customers the option to authenticate with Microsoft in the “app” context. This approach effectively doubles the number of possible requests, allowing for 240 requests per minute and 800 requests per hour.

Furthermore, we are developing batch requests for image uploads. This will significantly enhance the efficiency of synchronizing larger notebooks with many embedded images, reducing the overall number of requests and mitigating the impact of the rate limits.

Queuing System Enhancements

We have designed the app so that tasks that are not completed due to rate limits are rescheduled using a relatively sophisticated queuing system. However, this system still has one or two bugs, which occasionally cause errors when handling very large notebooks. We are actively working on fixing these issues and aim to have them resolved within the next two weeks.

InkML Support

Another limitation of our app is that it currently does not support InkML (Ink Markup Language). We are developing a custom parser for InkML, which will soon be released, allowing us to support nearly all OneNote content. This will enable users to synchronize handwritten notes and drawings seamlessly, further enhancing the functionality of our app.

Stay tuned for these enhancements, which will provide a more robust and efficient synchronization experience.