The mongo client you are using does not raise any bad argument exceptions, but the bson library that this implementation depends on raises a few exceptions of that type, which result exacly on the message you provided. You can find that out if you grep the dependencies directory
$ grep -r "badarg" deps/
deps/bson/src/bson_schema.erl: true -> error(badarg, [Document, Spec]);
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: _ -> error(badarg, [Value, Spec])
deps/bson/src/bson_schema.erl: {error, _, _} -> error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: {incomplete, _, _} -> error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: false -> error(badarg, [Value, Spec])
deps/bson/src/bson_schema.erl: false -> error(badarg, [Value, Spec])
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: false -> error(badarg, [Value, Spec])
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: false -> error(badarg, [Value, Spec])
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]);
deps/bson/src/bson_schema.erl: error(badarg, [Value, Spec]).
So, based on that I would make sure the schema is valid. Try to use another library even in another language, to see if it works or not. If it does not work then your mongo server has the issue, otherwise the implementation of mongodb-erlang
has a bug, and maybe you should report it in the issues.