LTI Grading via Outcome Service Error

Jump to solution
bpollack1
Community Novice

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:

POST https://canvas.castlelearning.com/api/lti/v1/tools/44/grade_passback HTTP/1.1
Content-Type: application/xml
Host: canvas.castlelearning.com
Authorization: OAuth oauth_consumer_key="10000000000001",oauth_nonce="a2ca4dd7-fbd3-4c02-a91d-f0b2ac0aaa6d",oauth_signature_method="HMAC-SHA1",oauth_version="1.0",oauth_timestamp="1528143703",oauth_body_hash="CGBtAm5hO3YmW5oRPaOw5iAw33Y%3d",oauth_signature="y6MHXjwRtsWV9Qm1Mva5koxiZvA%3d"
Content-Length: 922
Expect: 100-continue
<?xml version="1.0"?>
<imsx_POXEnvelopeRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
  <imsx_POXHeader>
    <imsx_POXRequestHeaderInfo>
      <imsx_version>V1.0</imsx_version>
      <imsx_messageIdentifier>328753e3-4481-4740-9178-dea95b4891ca</imsx_messageIdentifier>
    </imsx_POXRequestHeaderInfo>
  </imsx_POXHeader>
  <imsx_POXBody>
    <replaceResultRequest>
      <resultRecord>
        <sourcedGUID>
          <sourcedId>44-2-36-2-c99355a5a89ae38d6aba3962270f91209842c2e9</sourcedId>
        </sourcedGUID>
        <result>
          <resultScore>
            <language>en</language>
            <textString>0.75</textString>
          </resultScore>
        </result>
      </resultRecord>
    </replaceResultRequest>
  </imsx_POXBody>
</imsx_POXEnvelopeRequest>
Returned XML:
HTTP/1.1 200 OK
Date: Mon, 04 Jun 2018 20:21:42 GMT
Content-Type: application/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=d4e3867388e6fd0fdb9d189f9b67034d91528143702; expires=Tue, 04-Jun-19 20:21:42 GMT; path=/; domain=.castlelearning.com; HttpOnly
Cache-Control: max-age=0, private, must-revalidate
X-Request-Context-Id: 5596e09b-8f51-487b-b085-1e4addbca9ed
Strict-Transport-Security: max-age=31536000
X-Canvas-Meta: o=lti_api;n=grade_passback;b=832988;m=832988;u=0.09;y=0.00;d=0.01;
X-XSS-Protection: 1; mode=block
X-UA-Compatible: IE=Edge,chrome=1
X-Frame-Options: SAMEORIGIN
X-Runtime: 0.101521
X-Content-Type-Options: nosniff
X-Powered-By: Phusion Passenger 5.1.2
Vary: Cookie
ETag: W/"1ae369aa41efa1f3ea4a550573488c7b"
Status: 200 OK
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 425d1b7ded911ff4-DFW
39d
<?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_10000000000149]</imsx_description>
              <imsx_messageRefIdentifier>328753e3-4481-4740-9178-dea95b4891ca</imsx_messageRefIdentifier>
              <imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
            </imsx_statusInfo>
          </imsx_POXResponseHeaderInfo>
        </imsx_POXHeader>
        <imsx_POXBody><replaceResultResponse/></imsx_POXBody>
      </imsx_POXEnvelopeResponse>
Labels (1)
1 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.

View solution in original post