WeBWorK Main Forum

LTI 1.3 grade passback not working with Moodle and WW 2.20

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Sean Fitzpatrick -
Number of replies: 8

I thought I had everything set up and running smoothly with LTI 1.3, but now that students are in their courses and doing problems, we are noticing that nothing is being sent back to Moodle.

If I go to the LTI Grade Update and try to trigger a mass update I get (with debugging on) the following warning:

  • Use of uninitialized value in string eq at /opt/webwork/webwork2/lib/WeBWorK/Authen/LTI/GradePassback.pm line 51.

This is followed by a similar message pointing to line 65.

I don't see any obvious problems in the debug.log file, but then again, I am not so good at reading it.

Nothing has changed in my authen_LTI.conf file (other than including the LTI 1.3 stuff), and passback was working with LTI 1.1, so there must be something wrong in my LTI 1.3 configuration.

In reply to Sean Fitzpatrick

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Glenn Rice -

Those errors are due to a typo in the LTIGradeMode variable in that file, and actually have nothing to do with any actual issues with grade passback except for that the correct debugging messages that should be shown when a mass LTI grade pass back update is triggered will not be shown.  I just put in a pull request to fix the typo (see https://github.com/openwebwork/webwork2/pull/2803).

To get better information on what is going wrong look in the "Job Manager".  Each mass grade pass back job that has occurred in the last few days will be listed there.  Click on the info icon in the "State" column to get detailed information of what grades were passed back, and if they were successful or not.

In reply to Glenn Rice

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Sean Fitzpatrick -
Here is what I am seeing on the Job Manager. No grades have arrived in Moodle. It seems the update is not starting?

Screenshot of WeBWorK job manager page.
In reply to Sean Fitzpatrick

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Glenn Rice -

First note that https://github.com/openwebwork/webwork2/pull/2803 has now been merged, and a hotdog to main has also been merged.  So is you pull main the initialized value warnings you mentioned will go away.

Your job queue screenshot shows that all jobs are inactive. Do you have the job queue running?

In reply to Glenn Rice

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Sean Fitzpatrick -
The job queue wasn't running. But I'm not sure if I caused that today, or if it was down for awhile.

One guess: I had the "send scores after date" set to due date. Since no homework is due yet (our term started today), nothing was sent to Moodle.
This is a change in behaviour from past years, where grades updated every 24 hours no matter what. An instructor noticed and complained.
While trying to debug, I accidentally changed the owner of the webwork2.log file, which caused the webwork2 job queue to fail, and I created the problem I was trying to debug!

Of course, it's also possible that the job queue was down already for some reason.
 
I was able to initiate a grade passback, so I think we're OK now. I'll check to make sure the job queue is set to start automatically.
In reply to Sean Fitzpatrick

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Sean Fitzpatrick -
Oh -- maybe not important, but when running systemctl status webwork2-job-queue I am getting the following error message:

Sep 08 18:05:54 webwork-2024 webwork2[89850]: Use of uninitialized value $host in concatenation (.) or string at /usr/share/perl5/Mojo/UserAgent.pm line 178.
In reply to Sean Fitzpatrick

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Glenn Rice -
Did you previously use LTI 1.1 for this course, and switch it to LTI 1.3? If so, then the problem may be that the lis_source_did in the user table is still holding an LTI 1.1 value. An LTI 1.1 value would be something completely different from what it needs to be for LTI 1.3 which would be a URL. Then when grades are submitted the Mojo::UserAgent would have a problem with it, and the error you are giving seems possible.

This is one of the problems with my design to recycle LTI 1.1 database columns for LTI 1.3 to avoid adding new columns. Generally, it is not expected that a course would be switched back and forth between the LTI versions.
In reply to Sean Fitzpatrick

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Alex Jordan -

This is a change in behaviour from past years

This new feature is my fault. But I like it. If that date is set to close date (or better yet imho, reduced scoring date, even if you are not using reduced scoring) then if you also set $LTISendGradesEarlyThreshold to 'attempted`, that should send scores early as well, as long as a student has at least attempted the assignment.

Personally I use $LTISendScoresAfterDate set to the reduced scoring date, and $LTISendGradesEarlyThreshold set to 70%. So grades only get sent if (a) it's past the 100% credit due date or (b) they've made enough progress to at least be passing the assignment.

Anyway in the scenario you described, what was $LTISendGradesEarlyThreshold set to? Also, did faculty like the situation where the LMS score showed as low even when a student simply hadn't really dug into the assignment yet?

In reply to Alex Jordan

LTI 1.3 grade passback not working with Moodle and WW 2.20

by Sean Fitzpatrick -

I think I had the send early threshold set to attempted.

Admittedly I did not advertise this change, so I don't think there was enough awareness for other faculty to decide if they liked it or did not.

They just saw that grades weren't being passed back. My guess is that I changed owner/permissions on the webwork2.log file by mistake while upgrading to 2.20 and didn't realize that this had broken the job queue.

We use a daily mass update, and do not update on attempt, because IT thought it would create way too much traffic when you have 1000 students all trying to beat a homework deadline. A scenario that happens every single year is that a student completes their homewor, immediately checks Moodle, and then emails to complain when they don't see their grade updated...