Grade Passback¶
When a lab link is placed in the LMS as a graded assignment, NETLAB+ returns a grade to the LMS grade book when the learner’s lab session ends. Nothing has to be configured in NETLAB+ for this beyond the tool permission described under What the LMS Administrator Needs; the LMS decides, link by link, whether it wants a grade.
What Is Sent¶
The grade is a score between 0 and 1 for the learner’s lab session. Unless the lab’s enhanced content supplies its own grade, NETLAB+ calculates an engagement score based mainly on whether the learner attended the lab, with a smaller component for the learner’s share of the activity on the pod’s devices and virtual machines. The LMS scales the score to the points it has assigned the assignment.
The grade is sent once, when the session ends. NETLAB+ never revises a grade it has already reported; changes to a grade are made in the LMS grade book.
Note
A grade is returned only for a launch the LMS made as a graded assignment. A plain module item or page link carries no grade book line, and NETLAB+ sends nothing for it. This is not an error and is not logged as one.
How a Grade Is Delivered¶
Each queued grade is pinned to the launch that produced it: the LTI version the learner launched with, and, under LTI 1.3, the platform whose link they followed. Under LTI 1.1 the grade is sent with the community’s Consumer Key and Shared Secret using LTI Basic Outcomes; under LTI 1.3 NETLAB+ obtains an access token from the platform and posts the score to the line item the LMS named in the launch.
Because of the pinning, re-pointing a community at a different platform while grades are queued does no harm: each grade still goes to the LMS that issued its line item. Replacing a platform registration through dynamic registration carries the queued grades to the new registration.
Retries¶
A grade that cannot be delivered when the session ends, for example because the LMS is unreachable, is queued and retried on a fixed schedule: every 60 minutes, giving up after 24 attempts.
Not every failure is retried. The LMS’s response decides:
Transient failures (the LMS could not be reached, a server error, an expired token, a permission not yet granted to the tool, a line item the LMS cannot find) are retried until the attempt limit is reached. The last two are retried on purpose: both are usually corrected in the LMS after the fact, and the grade goes through on the next attempt once they are.
Permanent refusals (the LMS rejects the score itself as malformed or unacceptable) are not retried. The refusal is logged as a warning and the grade is recorded as finished, so it no longer appears among the grades waiting to post.
Retries run on a fixed system-wide cycle rather than a set time after each failure, so a grade that fails just before a cycle is retried almost at once. If three grades in a row fail within one cycle, the remaining grades are skipped for that cycle but still count an attempt, so a long LMS outage uses up attempts on grades that were never actually tried. A grade pinned to a platform that has since been deleted is retried until its attempts run out and is then lost.
A platform with grades still waiting to post to it cannot be deleted; see Deleting a Platform. A grade that is still undelivered when the attempt limit is reached is no longer retried and no longer holds up a deletion, and neither does a permanently refused grade, which is recorded as finished on the first refusal.
Suppressing Grades for a Class¶
A class can be excluded from grade passback entirely.
Login to the NETLAB+ administrator account, or as an instructor who leads the class.
Open the class and click Edit.
Check Suppress LTI Basic Outcomes and click
Submit.
While it is checked, no grades for the class’s labs are sent to the LMS under either LTI version, and nothing is entered in the LMS grade book for them.
Troubleshooting¶
- The learner completed the lab but no grade appeared:
Confirm the link was placed as a graded assignment in the LMS, that the tool has the score permission (What the LMS Administrator Needs), and that
Suppress LTI Basic Outcomesis not enabled on the class. Under LTI 1.3, a wrong OAuth 2.0 Token Endpoint on the platform is not noticed at launch and surfaces exactly this way; check it against the LMS.- Grades stopped arriving for a whole community:
Check that
LTI Integrationis still enabled on the community. While it is disabled no grade for any of the community’s classes is sent, and the log records only a warning that the LTI integration feature has been disabled for the community.- No grade for an observer, or for a lab whose enhanced content gave no grade:
Nothing is sent for a session that produced no grade, and the record is closed without an error.
- Grades stopped arriving after the LMS moved to LTI 1.3:
Grades are returned under the version each learner launched with. If the LMS course is still launching through a leftover 1.1 tool, the 1.1 path is used and needs the community’s 1.1 keys to remain valid. See Moving from LTI 1.1 to LTI 1.3.
- The LMS refused the grade:
The LMS’s response is recorded in the NETLAB+ logs, as an error while the grade is still being retried and as a warning when the refusal is permanent. Common causes are a permission not granted to the tool and a line item that was deleted in the LMS after the launch. Both are retried until the attempt limit, so granting the permission or restoring the assignment in time lets the grade through.