ToolProxy - Singleton Message Handlers

ToolProxy - Singleton Message Handlers

I am currently trying to pass the certification test suite with a minimal LTI 2.0 implementation. As part of this, I am trying to register a singleton handler for the basic-lti-launch-request, exactly as demonstrated in the Implementation Guide section 5.4.1. I consistently get 400 errors from the ToolProxyService, and the certification page displays the error "No message type found for 'basic-lti-launch-request'"

An excerpt from my tool profile is as follows:

"resource_handler": [
"message": [
"message_type": "basic-lti-launch-request",
"path": "/lti"
"service_offered": [

I have also tried sending an absolute URI for the path, sending a complete URI for message_type (as specified in ToolProxy JSON Binding document found here, and sending a MessageType container (as specified in the LTI Core document found here , referenced by section 16, MessageHandler). All of these have gotten the same result.

I would have assumed the example in the implementation guide is a correct and working example, but it doesn't line up with the description of the objects in the ToolProxy JSON Bindings or the LTI core.
Does anyone know which approach is correct, or have any other insight into the source of my problem or the meaning of this error message?