LTI Deep Linking custom launch parameters breaking

johnnyexamind
Community Member

I'm sending custom launch parameters when deep linking inside Canvas assignments. Custom launch parameters are described here. A typical HTTP Post request to register a deep link looks like this:

 

 

{
  "https://purl.imsglobal.org/spec/lti-dl/claim/content_items": [
    {
      "type": "ltiResourceLink",
      "title": "Assessment Title",
      "url": "https://lti-tool.com/",
      "custom": {
        "my_course_id": "custom-course-id",
        "my_exercise_id": "custom-exercise-id"
      }
    }
  ]
}

 

 

Notice the custom params `my_course_id` and `my_exercise_id`. This usually works well and Canvas includes the following payload in the LTI Launch:

 

{
  "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest",
  "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0",
  "https://purl.imsglobal.org/spec/lti/claim/resource_link": {
    "id": "eb21827c-365a-4f37-a9e3-5a74d182b225",
    "description": "",
    "title": "Assessment Title",
    "validation_context": null,
    "errors": {
      "errors": {}
    }
  },
  "https://purl.imsglobal.org/spec/lti/claim/custom": {
    "my_course_id": "custom-course-id",
    "my_exercise_id": "custom-exercise-id"
  }
}

 

I recently started encountering a problem where Canvas would send the wrong custom parameters during LTI Launch. This seems related to courses being copied in Canvas. Here is a simplified example:

1) Canvas Course A gets created and Assignment 123 gets deep linked with custom parameters

2) Canvas Course B gets created by copying Canvas Course A

3) The LTI configuration in Assignment 123 gets copied by default, so in order to have different custom parameters in Canvas Course B's assignment, the instructor re-registers the deep link in Canvas Course B's Assignment 123 with new custom parameters.

4) At first it appears that Canvas Course B's Assignment 123 launches with the new custom parameters, but then after a day or so it reverts back to Canvas Course A's Assignment 123's custom parameters.

5) The instructor corrects this by re-registering the deep link, but the problem continues to return.

Has anyone experienced this? Is there any way to correct this so that copied Canvas courses have no memory of the old custom parameters?

We've seen this problem go as far as 2 levels of copy. For example, imaging Canvas Course B gets copied to Canvas Course C. After changing Canvas Course C's Assignment 123's custom parameters, it still reverts back to Canvas Course A's custom parameters.

 

0 Likes