Validation failed: Hide in gradebook is not included in the list
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm getting the following error from some of my users when they try to use the API to update their assignment:
{"hide_in_gradebook":[{"attribute":"hide_in_gradebook","type":"inclusion","message":"inclusion"},{"attribute":"hide_in_gradebook","type":"inclusion","message":"inclusion"}],"invalid_record":[{"attribute":"invalid_record","type":"Validation failed: Hide in gradebook is not included in the list, Hide in gradebook is not included in the list","message":"Validation failed: Hide in gradebook is not included in the list, Hide in gradebook is not included in the list"}]}'
I'm a little confused by this since the API documentation says that this field is optional:
From the docs (https://canvas.instructure.com/doc/api/assignments.html😞
// (Optional) If true, the assignment will not be shown in any gradebooks
"hide_in_gradebook": true,
Regardless, I explicitly added the hide_in_gradebook key before I posted to Canvas as can be seen from my function below:
public function updateAssignment(int $course_id, int $assignment_id, $assignment_info): array
{
$lms_access_token = $this->_updateAccessToken();
$url = "/api/v1/courses/$course_id/assignments/$assignment_id";
$data = [];
if (isset($assignment_info['name'])) {
$data['assignment[name]'] = $this->addADAPT($assignment_info['name']);
}
if (isset($assignment_info['instructions'])) {
$data['assignment[description]'] = $assignment_info['instructions'];
}
if (isset($assignment_info['total_points'])) {
$data['assignment[points_possible]'] = $assignment_info['total_points'];
}
if (isset($assignment_info['lms_assignment_group_id'])) {
$data['assignment[assignment_group_id]'] = $assignment_info['lms_assignment_group_id'];
}
if (isset($assignment_info['position'])) {
$data['assignment[position]'] = $assignment_info['position'];
}
if (isset($assignment_info['unlock_at'])) {
$data['assignment[unlock_at]'] = $assignment_info['unlock_at'];
}
if (isset($assignment_info['due_at'])) {
$data['assignment[due_at]'] = $assignment_info['due_at'];
}
if (isset($assignment_info['shown'])) {
$data['assignment[published]'] = $assignment_info['shown'];
}
$data['assignment[hide_in_gradebook]'] = false;
return $this->_doCurl($lms_access_token->access_token, 'PUT', $url, $data);
}
However, I'm still getting the error. Any help would be appreciated.
Thank you,
Eric