AnsweredAssumed Answered

Lauching LTI 1.3 external tool with self hosted Canvas

Question asked by Carlos Vinícius Costa on Oct 30, 2019
Latest reply on Oct 31, 2019 by Stuart Ryan

Hello, i am hosting a canvas instance locally for testing purposes, and i am trying to get it to work with my LTI framework LTIJS, but so far i was not able to perform a basic launch request successfully. I was wondering if the LTI 1.3 functionalities where only available for instructure hosted instances of canvas.


My main issue right now is that a launch request is returning the following message: 


{"status":"bad_request","message":"Invalid lti_message_hint","error_report_id":171220946}


Even though i am making sure to return the correct message_hint to the platform. I am using the following configurations inside my framework:



await lti.registerPlatform({


url: '',


name: 'Local Canvas',


clientId: '1',


authenticationEndpoint: '',


accesstokenEndpoint: '',


authConfig: { method: 'JWK_SET', key: '' }




I tried using my local domain url (localhost:3000) but apparently whenever Canvas makes a launch request it passes the standard "" address as issuer, and attempting to return the launch request back to localhost:3000/api/lti/authorize_redirect caused it to thrown a internal server error. So i ended up using the canvas.instructure domain in all of my configurations (i also tried canvas.beta.instructure), but every launch request returned me the same lti_message_hint error.


I know that the issue is not in my framework because it is following the lti 1.3 protocol perfectly and apparently its working well with instructure hosted instances since a issue was posted in my project regarding the grading functionalities.


I would appreciate any help i can get. Thanks in advance.