{"record":{"id":"adfb262534049cc0","repo":"instructure/canvas-lms","slug":"enhanced-rubrics-rubric-self-assesment-and-assignments-2","errorCode":null,"errorMessage":"enhanced_rubrics, rubric_self_assesment and assignments_2_student must be enabled","messagePattern":"enhanced_rubrics, rubric_self_assesment and assignments_2_student must be enabled","errorType":"exception","errorClass":"GraphQL::ExecutionError","httpStatus":null,"severity":"error","filePath":"app/graphql/mutations/set_rubric_self_assessment.rb","lineNumber":30,"sourceCode":"# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n# details.\n#\n# You should have received a copy of the GNU Affero General Public License along\n# with this program. If not, see <http://www.gnu.org/licenses/>.\n#\nmodule Mutations\n  class SetRubricSelfAssessment < BaseMutation\n    argument :assignment_id, ID, required: true\n    argument :rubric_self_assessment_enabled, Boolean, required: true\n\n    def resolve(input:)\n      assignment = Assignment.find(input[:assignment_id])\n      rubric_association = assignment.rubric_association\n\n      unless Rubric.rubric_self_assessment_enabled?(assignment.course)\n        raise GraphQL::ExecutionError, \"enhanced_rubrics, rubric_self_assesment and assignments_2_student must be enabled\"\n      end\n\n      unless assignment.active_rubric_association?\n        raise GraphQL::ExecutionError, I18n.t(\"Rubric Association not found\")\n      end\n\n      unless rubric_association.grants_right?(current_user, session, :update)\n        raise GraphQL::ExecutionError, I18n.t(\"Insufficient permissions\")\n      end\n\n      if assignment.has_group_category?\n        raise GraphQL::ExecutionError, I18n.t(\"Cannot set rubric self assessment for group assignments\")\n      end\n\n      if assignment.quiz_lti? || assignment.quiz?\n        raise GraphQL::ExecutionError, I18n.t(\"Cannot set rubric self assessment for quiz assignments\")\n      end\n","sourceCodeStart":12,"sourceCodeEnd":48,"githubUrl":"https://github.com/instructure/canvas-lms/blob/1c9f0bb8013ed69c4f2efe11fd483025469b7e6c/app/graphql/mutations/set_rubric_self_assessment.rb#L12-L48","documentation":"SetRubricSelfAssessment requires three coordinated features on the assignment's course: enhanced_rubrics, rubric_self_assesment (note the legacy misspelling), and assignments_2_student. Rubric.rubric_self_assessment_enabled?(course) returns false unless all are on, and resolve raises this error naming all three.","triggerScenarios":"Calling setRubricSelfAssessment on a course where any of the three flags (enhanced_rubrics, rubric_self_assesment, assignments_2_student) is disabled at account/course level.","commonSituations":"Enabling rubric_self_assesment but forgetting assignments_2_student; flags set at root account but overridden off at the sub-account/course; newer environment where defaults differ.","solutions":["Enable all three flags on the course (or its root account): enhanced_rubrics, rubric_self_assesment, assignments_2_student","Check for course-level overrides that disable a flag enabled at the account level","Verify via console: Rubric.rubric_self_assessment_enabled?(assignment.course) returns true before calling"],"exampleFix":"// before\nsetRubricSelfAssessment(assignmentId: 5, ...)\n// after\ncourse = assignment.course\ncourse.enable_feature! :enhanced_rubrics\ncourse.enable_feature! :rubric_self_assesment\ncourse.enable_feature! :assignments_2_student\nsetRubricSelfAssessment(assignmentId: 5, ...)","handlingStrategy":"validation","validationCode":"// Ruby\nenabled = Rubric.rubric_self_assessment_enabled?(assignment.course)","typeGuard":null,"tryCatchPattern":"// Ruby\nbegin\n  mutation\nrescue GraphQL::ExecutionError => e\n  enable_required_flags if e.message.include?(\"must be enabled\")\nend","preventionTips":["Enable all three flags together (enhanced_rubrics, rubric_self_assesment, assignments_2_student)","Check for course-level overrides that mask account-level flag settings","Pre-flight the check with Rubric.rubric_self_assessment_enabled? in console"],"tags":["graphql","ruby","rubrics","feature-flag"],"backgroundTag":"feature-not-enabled","analyzedSha":"1c9f0bb8013ed69c4f2efe11fd483025469b7e6c","analyzedAt":"2026-09-15T20:33:18.891Z","contentChangedAt":"2026-09-15T20:33:18.891Z","schemaVersion":2},"datasetVersion":"2026-09-23T02:17:17.105Z"}