According to Plug documentation conn.params is
the request params, the result of merging the :path_params on top of :body_params on top of :query_params
When using OpenApiSpex.Plug.CastAndValidate plug the params will overwrite only with params from :path | :query | :header | :cookie meaning that there is never parameters from request_body there.
This should be clearly stated in CastAndValidate plug like it is for cast plug as it can cause some confusion.