I have created Canvas own instance on our server. All canvas related functionalities are properly working without any issue. But I add one of our tool as external tool. When I click on that it does not hit to the LTI endpoint ( I have properly configured it as external tool). Can anybody support on this.
I have attached fiddler trace and canvas accessslog herewith.
@manjula_samanpr when you say you installed one of your tools, do you mean a tool that you have developed?
If so, is the LTI app hosted on the same network as the Canvas instance?
If it is, are you testing on that same network?
If you are, do you have a loopback rule on your router? Or do you have a local DNS server to route the LTI URL back to your internal server?
I peeked at your log files, and see traffic for the Canvas server, but what about logs for the LTI server?
Also, I see a bunch of HTTP requests, I strongly suggest using HTTPS.
Thanks for your reply @garth
It is one of the tool which we have developed. It has configured to redirect to https://socket-dev.pearsoned.com/v1/launch/lti both are hosted on same network (AWS) . Ideally we should be able to see hit through the fiddler. (Either Network traffic of browser). That direction happens through the browser.
Actually we have Canvas another instance on SaaS on enviroment(Production). We are planning to do a PF test for our tool, since we can not use production environment for that purpose we though of spinup a canvas instance on our environment.
See the attached instanceTrace and productionNetworkTrace. I have attached the error message as well, which comes from canvas (errorOnThisInstance.jpg)
Did you verify your DNS is properly configured to find your test server on the local network?
Run a tracert from your client to production, and from your client to your test domain, and post those results.
There is no issu with the network. Did you see attached errorOnThisInstance.PNG, it comes from Canvas end.
See the newInstanceTrace.PNG we can not see it calls LTI service (But we can see that call in the Production Instace - productionNetworkTrace.PNG).
@garth Appreciate your prompt response on this since my remaining works are blocked due to this issue.
The LTI tool should be in an iFrame.
Have you confirmed that you are using HTTPS, and not HTTP?
Have you used the browser developer tools to get more details of the error?
Have you confirmed the URL in the LTI XML config?
Have you confirmed the key and secret, for validation on your LTI server?
More importantly, have you looked at the log files on the LTI server to see if your launch request is even being received?
If your LTI app isn't logging any information about the launch request process, I strongly suggest adding logging so you can more easily track down where the authentication process is failing.
Do you have access to the LTI code? Add logging if you have to, to verify that any of your logic is getting accessed.
i.e. first line of code in your launch request method:
_logger.debug("RECEIVED LAUNCH REQUEST")
If you can get that message to appear in your logs, then you know you have an authentication issue.
If you can't get that message to appear in your logs, then your launch request is not making it to your LTI server.
This decision point will help to isolate what direction you should focus on to resolve the issue.
Yes I make the site as HTTPS. (See attached image)
I used developer tools to troubleshoot this, it shows 500(Internal Server Error for that request). There is no issue with xml config and LTI service, since same configuration work on Production environment. We have added instrumentation on LTI service, I am unable to see any logging for this particular request.
https://canvas-stg.pearsoned.com/courses/2/external_tools/1 see that call, it return 500 Internal Server error that could be reason for this. Is there any way to trace this? If something went wrong in LTI, it will redirect our own error page. But in this scenario it redirected to Canvas error page.
See Below Production environment log which properly redirect to LTI service.