The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
I am trying to submit a grade using the outcomes service in LTI. I am getting an error saying that "Assignment is no longer associated with this tool" even though I have not changed anything in Canvas. I successfully created an External tool that is accessed via the assignment selection and a correct LTI launch is created. The student can take the assignment in our externa tool. I retrieve and store the lis_outcome_service_url and lis_result_sourcedid all without any issued. Below is the outgoing and incoming XML data. Any suggestions on why this error is occurring? Thanks.
Sent XML:
Solved! Go to Solution.
Try adding a domain of `castlelearning.com` to your tool configuration. I suspect that Canvas is attempting to match the tool configuration url to the launch URL associated with the assignment, but since it's not an exact match, Canvas tries to fall back on the domain. Since there is no domain, Canvas is not able to match the assignment url to the tool.
@bpollack1 This is most likely due to the tool being removed, then reinstalled (or just removed). When a tool is reinstalled, it's tool ID will increment. This means that the new tool needs to be re-launched to get the new sourcedid so that Canvas can map the POX message back to the assignment. You should be updating the sourced_id during each launch. It's ok to store it, but only store the most recently launch sourcedid. If the tool is completely removed, you will also see this error.
Thanks Jesse, I am not removing or re-installing the tool at all. I simply launch the LTI link, save the lis_result_sourcedid and lis_outcome_service_url to a database. This is when the student launches the link for the external tool. I immediately try to push a grade over using those saved values. To be safe I am also always updating those values whenever the student re-launches the LTI link. In debugging I am seeing the same sourced id coming in each time anyway. I am using the open source version of Canvas. I have my tool configured with an Assignment Selection placement at the account level. I have tried at the course level as well as adding account and course selection placement. I'm not sure how to debug any of this since it's all happening inside of Canvas. Any advice would be appreciated. Below is my tool xml.
<?xml version="1.0" encoding="UTF-8"?>
<cartridge_basiclti_link xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0" xmlns:blti="http://www.imsglobal.org/xsd/imsbasiclti_v1p0" xmlns:lticm="http://www.imsglobal.org/xsd/imslticm_v1p0" xmlns:lticp="http://www.imsglobal.org/xsd/imslticp_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imslticc_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd http://www.imsglobal.org/xsd/imsbasiclti_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd http://www.imsglobal.org/xsd/imslticm_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd http://www.imsglobal.org/xsd/imslticp_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd">
<blti:title>Castle Learning PreviewX</blti:title>
<blti:description>Access assignments in Castle Learning.</blti:description>
<blti:launch_url>https://internal.castlelearning.com/PreviewX/CLO/Account/CanvasLTI</blti:launch_url>
<blti:extensions platform="canvas.instructure.com">
<lticm:property name="privacy_level">public</lticm:property>
<lticm:property name="canvas_icon_class">icon-lti</lticm:property>
<lticm:property name="icon_url">https://internal.castlelearning.com/PreviewX/images/CLO-apple-touch-icon.png</lticm:property>
<lticm:options name="assignment_selection">
<lticm:property name="message_type">ContentItemSelectionRequest</lticm:property>
<lticm:property name="url">https://internal.castlelearning.com/PreviewX/CLO/Account/CanvasLTI</lticm:property>
</lticm:options>
</blti:extensions>
</cartridge_basiclti_link>
Try adding a domain of `castlelearning.com` to your tool configuration. I suspect that Canvas is attempting to match the tool configuration url to the launch URL associated with the assignment, but since it's not an exact match, Canvas tries to fall back on the domain. Since there is no domain, Canvas is not able to match the assignment url to the tool.
Deactivated user OMG, that was it! Thanks for that info, I've been spending days on this trying to figure out what was wrong.
Yes, thank you. This thread and your answer helped me resolve this issue as well.
Hi,
I'm facing similar error. I'm trying to update the assignment score via LTI 1.1 Outcomes Service. When I post below xml to update the grade in canvas I got the error saying "Assignment is no longer associated with this tool". FYI : I added my domain "dev.*****.com" in external tool. Let me know what cause this error.
XML REQUST TO CANVAS (sent via postman)
curl --request POST 'https://canvas.instructure.com/api/lti/v1/tools/512621/grade_passback' \
--header 'Content-Type: application/xml' \
--header 'Authorization: OAuth oauth_consumer_key="TestKey",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1625257304",oauth_nonce="lhcDtysddgGUXWFlw5ccvQ3G1oCP8oSdGHLb59Cwfhoss",oauth_version="1.0",oauth_body_hash="XSWk1lAQos1%2FLnojme%2Fn7PNdpUw%3D",oauth_signature="2hG1SScywiL%2FCgIvmu4x742Wi8o%3D"' \
--data-raw '<?xml version = "1.0" encoding = "UTF-8"?>
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
<imsx_POXHeader>
<imsx_POXRequestHeaderInfo>
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier>12345678</imsx_messageIdentifier>
</imsx_POXRequestHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody>
<replaceResultRequest>
<resultRecord>
<sourcedGUID>
<sourcedId>512621-2980036-23199685-30722732-880f1716623d76932634d9e5983d1fd7ed874956</sourcedId>
</sourcedGUID>
<result>
<resultScore>
<language>en</language>
<textString>0.9</textString>
</resultScore>
</result>
</resultRecord>
</replaceResultRequest>
</imsx_POXBody>
</imsx_POXEnvelopeRequest>'
RESPONSE from canvas
<?xml version="1.0" encoding="UTF-8"?>
<imsx_POXEnvelopeResponse xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
<imsx_POXHeader>
<imsx_POXResponseHeaderInfo>
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier/>
<imsx_statusInfo>
<imsx_codeMajor>failure</imsx_codeMajor>
<imsx_severity>status</imsx_severity>
<imsx_description>Assignment is no longer associated with this tool
[EID_70000178818771]</imsx_description>
<imsx_messageRefIdentifier>12345678</imsx_messageRefIdentifier>
<imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
</imsx_statusInfo>
</imsx_POXResponseHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody>
<replaceResultResponse/>
</imsx_POXBody>
</imsx_POXEnvelopeResponse>
Other Info.
1. The external tool is successfully added using xml configuration.
2. Successfully created a new assignment from the "External Tool". (The assignment is created using assignment selection placement. Once the item is selected below is the response sent to the TC)
ContentItemSelection: Tool Consumer <- Tool Provider
<form action="https://canvas.instructure.com/courses/2980036/external_content/success/external_tool_dialog" method="post">
<input type="hidden" name="lti_message_type" id="lti_message_type" value="ContentItemSelection">
<input type="hidden" name="lti_version" id="lti_version" value="LTI-1p0">
<input type="hidden" name="content_items" id="content_items" value='{
"@context": "http://purl.imsglobal.org/ctx/lti/v1/ContentItem",
"@graph": [
{
"@type": "LtiLinkItem",
"@id": "https://dev.*****.com/Miscellaneous/TestSelection?module=IIA",
"url": "https://dev.*****.com/Miscellaneous/TestSelection?module=IIA",
"title": "Test Assignment",
"mediaType": "application/vnd.ims.lti.v1.ltiassignment",
"placementAdvice": {
"presentationDocumentTarget": "iframe"
}
}]
}' />
<input type="hidden" name="oauth_consumer_key" value="TestKey" />
<input type="submit" value="submit"/>
</form>
Kindly share info/thoughts to fix this error. Thanks!
Hi,
I'm facing similar error.
I'm trying to update the assignment score via LTI Outcome Service. When i post below xml to update the grade in canvas I got the error "Assignment is no longer associated with this tool"
XML REQUST TO CANVAS
curl --request POST 'https://canvas.instructure.com/api/lti/v1/tools/512621/grade_passback' \
--header 'Content-Type: application/xml' \
--header 'Authorization: OAuth oauth_consumer_key="TestKey",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1625257304",oauth_nonce="lhcDtysddgGUXWFlw5ccvQ3G1oCP8oSdGHLb59Cwfhoss",oauth_version="1.0",oauth_body_hash="XSWk1lAQos1%2FLnojme%2Fn7PNdpUw%3D",oauth_signature="2hG1SScywiL%2FCgIvmu4x742Wi8o%3D"' \
--data-raw '<?xml version = "1.0" encoding = "UTF-8"?>
<imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
<imsx_POXHeader>
<imsx_POXRequestHeaderInfo>
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier>12345678</imsx_messageIdentifier>
</imsx_POXRequestHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody>
<replaceResultRequest>
<resultRecord>
<sourcedGUID>
<sourcedId>512621-2980036-23199685-30722732-880f1716623d76932634d9e5983d1fd7ed874956</sourcedId>
</sourcedGUID>
<result>
<resultScore>
<language>en</language>
<textString>1</textString>
</resultScore>
</result>
</resultRecord>
</replaceResultRequest>
</imsx_POXBody>
</imsx_POXEnvelopeRequest>'
RESPONSE
<?xml version="1.0" encoding="UTF-8"?>
<imsx_POXEnvelopeResponse xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
<imsx_POXHeader>
<imsx_POXResponseHeaderInfo>
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier/>
<imsx_statusInfo>
<imsx_codeMajor>failure</imsx_codeMajor>
<imsx_severity>status</imsx_severity>
<imsx_description>Assignment is no longer associated with this tool
[EID_70000178818771]</imsx_description>
<imsx_messageRefIdentifier>12345678</imsx_messageRefIdentifier>
<imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
</imsx_statusInfo>
</imsx_POXResponseHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody>
<replaceResultResponse/>
</imsx_POXBody>
</imsx_POXEnvelopeResponse>
Other Info. The assignment is created using asignment selection placement. Once the item is selected below is the response return to the TC
ContentItemSelection: Tool Consumer <- Tool Provider
<form action="https://canvas.instructure.com/courses/2980036/external_content/success/external_tool_dialog" method="post">
<input type="hidden" name="lti_message_type" id="lti_message_type" value="ContentItemSelection">
<input type="hidden" name="lti_version" id="lti_version" value="LTI-1p0">
<input type="hidden" name="content_items" id="content_items" value='{
"@context": "http://purl.imsglobal.org/ctx/lti/v1/ContentItem",
"@graph": [
{
"@type": "LtiLinkItem",
"url": "https://dev.*****.com/LTI/launch?module=IIA",
"title": "Test Assignment",
"mediaType": "application/vnd.ims.lti.v1.ltiassignment",
"placementAdvice": {
"presentationDocumentTarget": "iframe"
}
}]
}' />
<input type="hidden" name="oauth_consumer_key" value="TestKey" />
<input type="submit" value="submit"/>
</form>
FYI: in external tool configuration i've added a domain `dev.*****.com` but no luck. Any suggestions are welcome. Thanks!
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in