instructure/canvas-lms · warning · GraphQL::ExecutionError

inbox settings feature is disabled

Error message

inbox settings feature is disabled

What it means

UpdateMyInboxSettings#check_feature_enabled raises this when the :inbox_settings feature flag is not enabled on Account.site_admin. The mutation intentionally refuses to run unless the site-wide feature flag is turned on.

Solutions

  1. Enable the flag: Account.site_admin.feature_flag(:inbox_settings)... turn on 'inbox_settings' at the site admin feature flags UI or via console.
  2. Verify with Account.site_admin.feature_enabled?(:inbox_settings) in rails console.
  3. Ensure you are in the environment where the flag is enabled (dev vs prod).
  4. Hide inbox-settings UI in the client when the flag is off (query the feature flag first).

Example fix

# before (rails c)
# Account.site_admin.feature_enabled?(:inbox_settings) => false
# after
Account.site_admin.set_feature_flag!(:inbox_settings, 'on')
Defensive patterns

Strategy: validation

Validate before calling

const flags = await gql(FETCH_FEATURE_FLAGS);
if (!flags?.inboxSettingsEnabled) throw new Error('inbox settings feature is disabled');

Type guard

function inboxSettingsEnabled(env) { return env?.featureFlags?.includes('inbox_settings'); }

Try / catch

try {
  await gql(UPDATE_MY_INBOX_SETTINGS, { ...prefs });
} catch (e) {
  if (e.message.includes('inbox settings feature is disabled')) { /* hide feature / fallback UI */ }
  else throw e;
}

Prevention

When it happens

Trigger: Calling updateMyInboxSettings in an environment where the inbox_settings feature flag is off at the site admin account (default off in many installs/environments).

Common situations: Self-hosted or fresh Canvas installs where the flag was never enabled; feature flag disabled per-account but the mutation checks site_admin only; environment (test/beta/prod) flag drift.

Related errors


AI-assisted analysis of instructure/canvas-lms@1c9f0bb801 (2026-09-15). Data as JSON: /api/errors/110ae3434526621f. Report an issue: GitHub.

Appendix: source

Thrown at app/graphql/mutations/update_my_inbox_settings.rb:61

                                                                                use_signature: input[:use_signature],
                                                                                signature: input[:signature],
                                                                                use_out_of_office: input[:use_out_of_office],
                                                                                out_of_office_first_date: input[:out_of_office_first_date],
                                                                                out_of_office_last_date: input[:out_of_office_last_date],
                                                                                out_of_office_subject: input[:out_of_office_subject],
                                                                                out_of_office_message: input[:out_of_office_message])

    if updated_inbox_settings
      { my_inbox_settings: updated_inbox_settings }
    else
      errors_for(updated_inbox_settings)
    end
  end

  private

  def check_feature_enabled
    raise GraphQL::ExecutionError, I18n.t("inbox settings feature is disabled") unless Account.site_admin.feature_enabled?(:inbox_settings)
  end
end

View on GitHub (pinned to 1c9f0bb801)