The very first lti tool installed in a Sakai instance is unable to save settings values. The tool is given an id of 0. This ends up mapping to a contentKey of 0 in the basiclti ServiceServlet processSetting method. The code (around line 536) checks that the content key is greater than 0 before it actually processes content so the content is not retrieved from the request and can't be saved. The API still reports success.
This was discovered on the hsqldb implementation. Other database implementations have not been tested.
- create a Sakai instance with an empty LTI_CONTENT table. The table will be empty for any brand new Sakai instance.
- install an LTI tool via External Tools that uses the setting service as an external 1.1 tool.
- logout then log back in
- settings will be empty.
If another tool is installed in a similar way it will be able to use the setting service successfully.