LTI store enables site operators to create reusable configurations for LTI 1.1 and LTI 1.3. Course authors can use these configurations in LTI consumer XBlocks. When using LTI store for LTI 1.1, course teams don't have to create LTI passport in Advance Settings.
Problem
Grade pass back does NOT work when an LTI 1.1 tool is configured using LTI store. I've observed this limitation with 2 tools: Muzzylane & Saltire (test tool).
API call from the tools to submit returns: HTTP/1.1 500 Internal Server Error.
Logs from the master sandbox at the time of grade submission are attached.
Saltire_master_sandbox_logs.txt
To reproduce
- Visit https://saltire.lti.app/tool.
- Select
HMAC-SHA1 as Signature method. This is LTI 1.1.
- Create a new reusable config in django admin: https://master.openedx.io/admin/lti_store/externallticonfiguration/
- Copy key, secret and launch URL (https://saltire.lti.app/tool) in the new reusable config and click
Save.
- Create an LTI consumer XBlock, add reusable config ID, save and publish.
- Launch the tool, navigate to
Services > Basic Outcomes.
- Add an outcome value between 0 and 1. Click
Update
- View the response in the tool and view logs/progress page.

LTI store enables site operators to create reusable configurations for LTI 1.1 and LTI 1.3. Course authors can use these configurations in LTI consumer XBlocks. When using LTI store for LTI 1.1, course teams don't have to create LTI passport in Advance Settings.
Problem
Grade pass back does NOT work when an LTI 1.1 tool is configured using LTI store. I've observed this limitation with 2 tools: Muzzylane & Saltire (test tool).
API call from the tools to submit returns:
HTTP/1.1 500 Internal Server Error.Logs from the master sandbox at the time of grade submission are attached.
Saltire_master_sandbox_logs.txt
To reproduce
HMAC-SHA1asSignature method. This is LTI 1.1.Save.Services>Basic Outcomes.Update