Community

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mindcycle
New Member

LTI 1.1 Gradebook Passback Error: No Assignment, No Account, No access -- different each time...

Hello All,

Currently experiencing seemingly random gradebook passback issues with LTI. Roughly 30% are failing, but CRON job eventually works for same item. Sort of strange. We're using the old IMS PHP package and getting this error:

"{"errors":[{"field":"grade","message":"cannot be changed at this time: You don't have permission to manage grades for this course","error_code":null}]}"

Again, same item eventually works. Any ideas about why we would get this error message?

@svickers2 may have some insight here

 

I should add some more context here...

Here are the responses...

HTTP/1.1 422 Unprocessable Entity
Date: Thu, 10 Dec 2020 15:00:14 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache
X-Request-Context-Id: 7f83a0f4-518a-4a8c-ac1c-54634821cc48
Vary: Accept-Encoding
X-Rate-Limit-Remaining: 700.0
X-Canvas-Meta: q=569;a=557;g=l7Hhpe0xMxcDLGMWpYApI5rv67hH8xrC63kiwhXa;s=1096;c=cluster74;z=us-east-1b;o=lti_api;n=grade_passback;b=2456752;m=2456752;u=0.18;y=0.00;d=0.01;
X-Frame-Options: SAMEORIGIN
X-Request-Cost: 0.1937657299986313
Cache-Control: no-cache
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer-when-downgrade
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Runtime: 0.201989
X-Content-Type-Options: nosniff
X-Request-Processor: 0e6ffa30dc3cff7d6
X-A11y-Ally: Dana Danger Grey
Status: 422 Unprocessable Entity
P3P: CP="None, see http://www.instructure.com/privacy-policy

{"errors":[{"field":"grade","message":"cannot be changed at this time:

---------------------------------------------------------------------------------------------------------

 


HTTP/1.1 200 OK
Date: Thu, 10 Dec 2020 15:06:02 GMT
Content-Type: application/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache
X-Request-Context-Id: eea593c7-8938-4f8c-93fb-41594b378d28
Vary: Accept-Encoding
X-Rate-Limit-Remaining: 700.0
X-Canvas-Meta: q=861;a=1;g=rPRrNGcOb4h8Xug727D4TgecypA2d2RbTJigyaeQ;s=10585;c=cluster238;z=us-east-1c;o=lti_api;n=grade_passback;b=2211684;m=2211684;u=0.04;y=0.00;d=0.01;
X-Frame-Options: SAMEORIGIN
X-Request-Cost: 0.05037178600105108
Cache-Control: max-age=0, private, must-revalidate
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer-when-downgrade
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Runtime: 0.061817
X-Content-Type-Options: nosniff
X-Request-Processor: 08bceab3ba0b8875b
X-A11y-Ally: Dana Danger Grey
ETag: W/"4bc79a62db86f6bb95a0883e7ab40756"
Status: 200 OK
P3P: CP="None, see http://www.instructure.com/privacy-policy


<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>User is no longer in course
[EID_105850000011855008]</imsx_description>
<imsx_messageRefIdentifier>5fd2395241952</imsx_messageRefIdentifier>
<imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
</imsx_statusInfo>
</imsx_POXResponseHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody><replaceResultResponse/></imsx_POXBody>
</imsx_POXEnvelopeResponse>

---------------------------------------------------------------------------------------------------------

 


HTTP/1.1 200 OK
Date: Thu, 10 Dec 2020 15:16:23 GMT
Content-Type: application/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache
X-Request-Context-Id: 22c96672-ac56-4044-9413-26989900e836
Vary: Accept-Encoding
X-Rate-Limit-Remaining: 700.0
X-Canvas-Meta: q=783;a=1;g=dxgH017h12kZGvRWFQnayLH7kEnDHxPQFYTRrU8p;s=2805;c=cluster260;z=us-east-1b;o=lti_api;n=grade_passback;b=1679316;m=1679316;u=0.05;y=0.00;d=0.01;
X-Frame-Options: SAMEORIGIN
X-Request-Cost: 0.05777883000001793
Cache-Control: max-age=0, private, must-revalidate
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer-when-downgrade
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Runtime: 0.105771
X-Content-Type-Options: nosniff
X-Request-Processor: 02916865b9bf8f8af
X-A11y-Ally: Dana Danger Grey
ETag: W/"10c569d720d29ee57891d6023cf0bebe"
Status: 200 OK
P3P: CP="None, see http://www.instructure.com/privacy-policy

<?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 invalid
[EID_28050000002246921]</imsx_description>
<imsx_messageRefIdentifier>5fd23bc1cc924</imsx_messageRefIdentifier>
<imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
</imsx_statusInfo>
</imsx_POXResponseHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody><replaceResultResponse/></imsx_POXBody>
</imsx_POXEnvelopeResponse>


-------------------------------------------------------------------------

Another error message from our logs:
{"errors":[{"field":"grade","message":"cannot be changed at this time: You don't have permission to manage grades for this course","error_code":null}],"error_report_id":20910869}

Labels (4)
0 Kudos
4 Replies
mindcycle
New Member

I should add some more context here...

Here are the responses...

HTTP/1.1 422 Unprocessable Entity
Date: Thu, 10 Dec 2020 15:00:14 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache
X-Request-Context-Id: 7f83a0f4-518a-4a8c-ac1c-54634821cc48
Vary: Accept-Encoding
X-Rate-Limit-Remaining: 700.0
X-Canvas-Meta: q=569;a=557;g=l7Hhpe0xMxcDLGMWpYApI5rv67hH8xrC63kiwhXa;s=1096;c=cluster74;z=us-east-1b;o=lti_api;n=grade_passback;b=2456752;m=2456752;u=0.18;y=0.00;d=0.01;
X-Frame-Options: SAMEORIGIN
X-Request-Cost: 0.1937657299986313
Cache-Control: no-cache
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer-when-downgrade
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Runtime: 0.201989
X-Content-Type-Options: nosniff
X-Request-Processor: 0e6ffa30dc3cff7d6
X-A11y-Ally: Dana Danger Grey
Status: 422 Unprocessable Entity
P3P: CP="None, see http://www.instructure.com/privacy-policy

{"errors":[{"field":"grade","message":"cannot be changed at this time:

---------------------------------------------------------------------------------------------------------

 


HTTP/1.1 200 OK
Date: Thu, 10 Dec 2020 15:06:02 GMT
Content-Type: application/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache
X-Request-Context-Id: eea593c7-8938-4f8c-93fb-41594b378d28
Vary: Accept-Encoding
X-Rate-Limit-Remaining: 700.0
X-Canvas-Meta: q=861;a=1;g=rPRrNGcOb4h8Xug727D4TgecypA2d2RbTJigyaeQ;s=10585;c=cluster238;z=us-east-1c;o=lti_api;n=grade_passback;b=2211684;m=2211684;u=0.04;y=0.00;d=0.01;
X-Frame-Options: SAMEORIGIN
X-Request-Cost: 0.05037178600105108
Cache-Control: max-age=0, private, must-revalidate
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer-when-downgrade
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Runtime: 0.061817
X-Content-Type-Options: nosniff
X-Request-Processor: 08bceab3ba0b8875b
X-A11y-Ally: Dana Danger Grey
ETag: W/"4bc79a62db86f6bb95a0883e7ab40756"
Status: 200 OK
P3P: CP="None, see http://www.instructure.com/privacy-policy


<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>User is no longer in course
[EID_105850000011855008]</imsx_description>
<imsx_messageRefIdentifier>5fd2395241952</imsx_messageRefIdentifier>
<imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
</imsx_statusInfo>
</imsx_POXResponseHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody><replaceResultResponse/></imsx_POXBody>
</imsx_POXEnvelopeResponse>

---------------------------------------------------------------------------------------------------------

 


HTTP/1.1 200 OK
Date: Thu, 10 Dec 2020 15:16:23 GMT
Content-Type: application/xml; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache
X-Request-Context-Id: 22c96672-ac56-4044-9413-26989900e836
Vary: Accept-Encoding
X-Rate-Limit-Remaining: 700.0
X-Canvas-Meta: q=783;a=1;g=dxgH017h12kZGvRWFQnayLH7kEnDHxPQFYTRrU8p;s=2805;c=cluster260;z=us-east-1b;o=lti_api;n=grade_passback;b=1679316;m=1679316;u=0.05;y=0.00;d=0.01;
X-Frame-Options: SAMEORIGIN
X-Request-Cost: 0.05777883000001793
Cache-Control: max-age=0, private, must-revalidate
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer-when-downgrade
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Runtime: 0.105771
X-Content-Type-Options: nosniff
X-Request-Processor: 02916865b9bf8f8af
X-A11y-Ally: Dana Danger Grey
ETag: W/"10c569d720d29ee57891d6023cf0bebe"
Status: 200 OK
P3P: CP="None, see http://www.instructure.com/privacy-policy

<?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 invalid
[EID_28050000002246921]</imsx_description>
<imsx_messageRefIdentifier>5fd23bc1cc924</imsx_messageRefIdentifier>
<imsx_operationRefIdentifier>replaceResult</imsx_operationRefIdentifier>
</imsx_statusInfo>
</imsx_POXResponseHeaderInfo>
</imsx_POXHeader>
<imsx_POXBody><replaceResultResponse/></imsx_POXBody>
</imsx_POXEnvelopeResponse>


-------------------------------------------------------------------------

Another error message from our logs:
{"errors":[{"field":"grade","message":"cannot be changed at this time: You don't have permission to manage grades for this course","error_code":null}],"error_report_id":20910869}

mindcycle
New Member

You will see that we're getting different errors each time. In one case it says "user is no longer in course" in another "assignment is invalid". In both cases there haven't been any changes to the users in the course, or assignments, and other users/assignments are passing back successfully. Does this look like an issue with the lis_outcome_service_url? Is it possible there is a formatting issue when pulling this from the DB? Again--failing 30% of the time and there is no apparent pattern that I can see.

mindcycle
New Member

@svickers2 would be deeply grateful for your input on this...

I'm wondering if the doOutcomeService function in the old PHP IMS library could be related: https://github.com/IMSGlobal/LTI-Tool-Provider-Library-PHP/blob/c9cbfdd5e22b0bc692335b2fd215e8662097...

svickers2
Community Member

Since you are getting a response from Canvas to each request, and a request which has failed can be successful when sent again, the issue looks like it is with Canvas and not your code.  The only thing you could ensure is that you leave a short time interval between requests in case there is a load issue.

If the library you are using is no longer supported, then I would recommend that you look at updating to the latest version from the ceLTIc Project (see https://github.com/celtic-project/LTI-PHP) which also includes support for LTI 1.3.