{"record":{"id":"eec32b987389ff41","repo":"mongodb/mongoid","slug":"automatic-encryption-configuration-for-client-cl","errorCode":null,"errorMessage":"Automatic encryption configuration for client %{client} does include options for kms_provider %{kms_provider}","messagePattern":"Automatic encryption configuration for client %(.+?) does include options for kms_provider %(.+?)","errorType":"exception","errorClass":"Mongoid::Errors::InvalidAutoEncryptionConfiguration","httpStatus":null,"severity":"error","filePath":"lib/mongoid/tasks/encryption.rb","lineNumber":73,"sourceCode":"      #   normalized kms provider name, the kms providers hash, and the key\n      #   vault namespace.\n      def prepare_arguments(kms_provider_name, client_name)\n        client = (client_name || 'default').to_s\n        client_options = Mongoid.clients[client]\n        raise Errors::NoClientConfig.new(client) unless client_options.is_a?(Hash)\n\n        auto_encryption_options = client_options.dig(:options, :auto_encryption_options)\n        raise Errors::InvalidAutoEncryptionConfiguration.new(client) unless auto_encryption_options.is_a?(Hash)\n\n        key_vault_namespace = auto_encryption_options[:key_vault_namespace]\n        raise Errors::InvalidAutoEncryptionConfiguration.new(client) unless key_vault_namespace.is_a?(String)\n\n        kms_providers = auto_encryption_options[:kms_providers]\n        raise Errors::InvalidAutoEncryptionConfiguration.new(client) unless kms_providers.is_a?(Hash)\n\n        valid_kms_provider_name = get_kms_provider_name(kms_provider_name, kms_providers)\n        unless kms_providers.key?(valid_kms_provider_name)\n          raise Errors::InvalidAutoEncryptionConfiguration.new(client, valid_kms_provider_name)\n        end\n\n        [ valid_kms_provider_name, kms_providers, key_vault_namespace ]\n      end\n\n      # Get kms provider name to use for creating a data key.\n      #\n      # If kms_provider_name is provided, it will be used. Otherwise, if there\n      # is only one kms provider, that provider will be used. Otherwise, an\n      # error will be raised.\n      #\n      # @param [ String | nil ] kms_provider_name The name of the kms provider\n      #   as provided by the user.\n      # @param [ Hash ] kms_providers The kms providers hash from the client's\n      #   auto_encryption_options.\n      #\n      # @return [ String ] The kms provider name to use for creating a data\n      #   key.","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/mongodb/mongoid/blob/0da0e23d71adfbad31128c18e5e2c8c301c6f7c4/lib/mongoid/tasks/encryption.rb#L55-L91","documentation":"Error \"Automatic encryption configuration for client %{client} does include options for kms_provider %{kms_provider}\" thrown in mongodb/mongoid.","triggerScenarios":"Thrown at lib/mongoid/tasks/encryption.rb:73 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0da0e23d71adfbad31128c18e5e2c8c301c6f7c4","analyzedAt":"2026-08-23T06:25:47.656Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}