{"record":{"id":"ab6db988434bde09","repo":"instructure/canvas-lms","slug":"deprecated-setting-sent-to-incomingmessageprocessor-key","errorCode":null,"errorMessage":"deprecated setting sent to IncomingMessageProcessor: #{key}","messagePattern":"deprecated setting sent to IncomingMessageProcessor: #(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"gems/incoming_mail_processor/lib/incoming_mail_processor/incoming_message_processor.rb","lineNumber":124,"sourceCode":"      end\n\n      def get_mailbox_class(account)\n        MailboxClasses.fetch(account.protocol)\n      end\n\n      def timeout_method(&)\n        Canvas.timeout_protection(\"incoming_message_processor\", raise_on_timeout: true, &)\n      end\n\n      def configure_settings(config)\n        @settings = IncomingMailProcessor::Settings.new\n        @deprecated_settings = IncomingMailProcessor::DeprecatedSettings.new\n\n        config.symbolize_keys.each do |key, value|\n          if IncomingMailProcessor::Settings.members.map(&:to_sym).include?(key)\n            settings.send(:\"#{key}=\", value)\n          elsif IncomingMailProcessor::DeprecatedSettings.members.map(&:to_sym).include?(key)\n            logger&.warn(\"deprecated setting sent to IncomingMessageProcessor: #{key}\")\n            deprecated_settings.send(:\"#{key}=\", value)\n          else\n            raise \"unrecognized setting sent to IncomingMessageProcessor: #{key}\"\n          end\n        end\n      end\n\n      def configure_accounts(account_configs)\n        flat_account_configs = flatten_account_configs(account_configs)\n        self.mailbox_accounts = flat_account_configs.map do |mailbox_protocol, mailbox_config|\n          error_folder = mailbox_config.delete(:error_folder)\n          address = mailbox_config[:address] || mailbox_config[:username]\n          IncomingMailProcessor::MailboxAccount.new({\n                                                      protocol: mailbox_protocol.to_sym,\n                                                      config: mailbox_config,\n                                                      address:,\n                                                      error_folder:,\n                                                    })","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/instructure/canvas-lms/blob/1c9f0bb8013ed69c4f2efe11fd483025469b7e6c/gems/incoming_mail_processor/lib/incoming_mail_processor/incoming_message_processor.rb#L106-L142","documentation":"IncomingMessageProcessor#configure_settings validates every settings key against IncomingMailProcessor::Settings. Keys belonging to DeprecatedSettings are still accepted but this warning is logged and the value is stored separately, so callers know the setting is on its way out. Unknown keys raise outright.","triggerScenarios":"configure_settings (called during IncomingMessageProcessor initialization) receives a config hash containing a key listed in IncomingMailProcessor::DeprecatedSettings.members (a renamed/removed legacy option) — the warning fires for that key.","commonSituations":"Deploy configs (e.g., incoming_mail.yml or consul-provisioned settings) still carrying old option names after a gem upgrade; environment-specific overrides that were never migrated; copy-pasted configs between environments.","solutions":["Replace the deprecated key in your configuration with its current Settings equivalent","Check gem changelog/docs for the renamed setting and update all environments (config files, consul, per-account overrides)","Suppress nothing — fix the config; the warning exists precisely to flag stale keys","Grep deployment config repos for the deprecated key name to catch every environment"],"exampleFix":"// before\nIncomingMessageProcessor.configure_settings({ legacy_auth_user: 'x' }) # warns\n// after\nIncomingMessageProcessor.configure_settings({ auth_user: 'x' }) # current setting name\n","handlingStrategy":"validation","validationCode":"# validate config keys before calling configure_settings\nbad = config.keys.map(&:to_sym) - IncomingMailProcessor::Settings.members.map(&:to_sym)\nraise \"unknown mail settings: #{bad}\" unless (bad - IncomingMailProcessor::DeprecatedSettings.members.map(&:to_sym)).empty?","typeGuard":null,"tryCatchPattern":"begin\n  IncomingMessageProcessor.configure_settings(config)\nrescue RuntimeError => e\n  raise if e.message.start_with?('unrecognized setting')\n  Rails.logger.warn(e.message)\nend","preventionTips":["Keep mail processor configs in sync after gem upgrades","Grep config management (consul, yml files) for deprecated key names","Read the gem changelog when bumping incoming_mail_processor versions"],"tags":["deprecation","configuration","email","incoming-mail"],"backgroundTag":"deprecated-api-usage","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"}