This isn't a question about implementing LTI, but rather, observed behavior in Canvas. Our institution has a home-grown LTI tool that serves thousands of LTI launches in Canvas every day without issue. But very occasionally and inconsistently, the LTI tool will run into an error where the LTI POST parameters sent from Canvas are not present on launch. This happens maybe a few times across thousands of launches, and it's happening for LTI embeds that are otherwise fully operational. I can see from our error logs that Canvas sends a POST request with no parameters to our LTI endpoint, for a student who had previously had a successful LTI launch in the same session, and when the student refreshes the page, the next LTI launch is valid and works. It tends to just happen once for a user rather than be repeated behavior, so I'm doubtful that this issue is being caused by the user, but it's always a possibility.
Has anyone else observed this behavior? Is this something that could maybe be caused by peculiar user behavior, or is it just the occasional flake-out from Canvas? Is there anything I can do to prevent this error? It's a little concerning to me that an empty launch can happen, and that it happens so inconsistently, which makes it nearly impossible to debug.