Erlang/OTP 25 [erts-13.2.2.9] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1]
Elixir 1.14.5 (compiled with Erlang/OTP 25)
[error] GenServer ExAws.Config.AuthCache terminating
** (Protocol.UndefinedError) protocol String.Chars not implemented for {:system, "AWS_ROLE_ARN"} of type Tuple. This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, ExJsonSchema.Validator.Error.AdditionalItems, ExJsonSchema.Validator.Error.AdditionalProperties, ExJsonSchema.Validator.Error.AllOf, ExJsonSchema.Validator.Error.AnyOf, ExJsonSchema.Validator.Error.Const, ExJsonSchema.Validator.Error.Contains, ExJsonSchema.Validator.Error.ContentEncoding, ExJsonSchema.Validator.Error.ContentMediaType, ExJsonSchema.Validator.Error.Dependencies, ExJsonSchema.Validator.Error.Enum, ExJsonSchema.Validator.Error.False, ExJsonSchema.Validator.Error.Format, ExJsonSchema.Validator.Error.IfThenElse, ExJsonSchema.Validator.Error.ItemsNotAllowed, ExJsonSchema.Validator.Error.MaxItems, ExJsonSchema.Validator.Error.MaxLength, ExJsonSchema.Validator.Error.MaxProperties, ExJsonSchema.Validator.Error.Maximum, ExJsonSchema.Validator.Error.MinItems, ExJsonSchema.Validator.Error.MinLength, ExJsonSchema.Validator.Error.MinProperties, ExJsonSchema.Validator.Error.Minimum, ExJsonSchema.Validator.Error.MultipleOf, ExJsonSchema.Validator.Error.Not, ExJsonSchema.Validator.Error.OneOf, ExJsonSchema.Validator.Error.Pattern, ExJsonSchema.Validator.Error.PropertyNames, ExJsonSchema.Validator.Error.Required, ExJsonSchema.Validator.Error.Type, ExJsonSchema.Validator.Error.UniqueItems, Float, Geo.GeometryCollection, Geo.LineString, Geo.LineStringZ, Geo.LineStringZM, Geo.MultiLineString, Geo.MultiLineStringZ, Geo.MultiPoint, Geo.MultiPointZ, Geo.MultiPolygon, Geo.MultiPolygonZ, Geo.Point, Geo.PointM, Geo.PointZ, Geo.PointZM, Geo.Polygon, Geo.PolygonZ, Hex.Solver.Assignment, Hex.Solver.Constraints.Empty, Hex.Solver.Constraints.Range, Hex.Solver.Constraints.Union, Hex.Solver.Incompatibility, Hex.Solver.PackageRange, Hex.Solver.Term, Integer, List, NaiveDateTime, Phoenix.LiveComponent.CID, Postgrex.Copy, Postgrex.Query, Time, URI, Version, Version.Requirement
(elixir 1.14.5) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir 1.14.5) lib/string/chars.ex:22: String.Chars.to_string/1
(elixir 1.14.5) lib/uri.ex:153: URI.encode_kv_pair/2
(elixir 1.14.5) lib/enum.ex:1755: anonymous fn/2 in Enum.map_join/3
(elixir 1.14.5) lib/enum.ex:1725: anonymous fn/4 in Enum.map_intersperse/3
(stdlib 4.3.1.4) maps.erl:411: :maps.fold_1/3
(elixir 1.14.5) lib/enum.ex:2480: Enum.map_intersperse/3
(elixir 1.14.5) lib/enum.ex:1755: Enum.map_join/3
(ex_aws 2.2.5) lib/ex_aws/operation/query.ex:23: ExAws.Operation.ExAws.Operation.Query.perform/2
(ex_aws_sts 2.3.0) lib/ex_aws/sts/auth_cache/assume_role_credentials_adapter.ex:36: ExAws.STS.AuthCache.AssumeRoleCredentialsAdapter.get_security_credentials/3
(ex_aws 2.2.5) lib/ex_aws/config/auth_cache.ex:75: ExAws.Config.AuthCache.refresh_awscli_config/3
(ex_aws 2.2.5) lib/ex_aws/config/auth_cache.ex:50: ExAws.Config.AuthCache.handle_call/3
(stdlib 4.3.1.4) gen_server.erl:1149: :gen_server.try_handle_call/4
(stdlib 4.3.1.4) gen_server.erl:1178: :gen_server.handle_msg/6
(stdlib 4.3.1.4) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message (from #PID<0.1798.0>): {:refresh_awscli_config, "default", 30000}
State: ExAws.Config.AuthCache
Client #PID<0.1798.0> is alive
(stdlib 4.3.1.4) gen.erl:256: :gen.do_call/4
(elixir 1.14.5) lib/gen_server.ex:1035: GenServer.call/3
(ex_aws 2.2.5) lib/ex_aws/config.ex:98: ExAws.Config.retrieve_runtime_value/2
(elixir 1.14.5) lib/stream.ex:612: anonymous fn/4 in Stream.map/2
(elixir 1.14.5) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.5) lib/stream.ex:1813: Enumerable.Stream.do_each/4
(elixir 1.14.5) lib/enum.ex:1150: Enum.find/3
(ex_aws 2.2.5) lib/ex_aws/config.ex:79: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
(stdlib 4.3.1.4) maps.erl:411: :maps.fold_1/3
(ex_aws 2.2.5) lib/ex_aws/config.ex:38: ExAws.Config.new/2
(ex_aws 2.2.5) lib/ex_aws.ex:71: ExAws.request/2
(waffle 1.1.10) lib/waffle/storage/s3.ex:218: Waffle.Storage.S3.do_put_stream/3
(waffle 1.1.10) lib/waffle/actions/store.ex:139: Waffle.Actions.Store.put_version/3
(elixir 1.14.5) lib/task/supervised.ex:89: Task.Supervised.invoke_mfa/2
(elixir 1.14.5) lib/task/supervised.ex:34: Task.Supervised.reply/4
(stdlib 4.3.1.4) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.1798.0> started from #PID<0.1789.0> terminating
** (stop) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_awscli_config, "default", 30000}, 30000)
** (EXIT) an exception was raised:
** (Protocol.UndefinedError) protocol String.Chars not implemented for {:system, "AWS_ROLE_ARN"} of type Tuple. This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, ExJsonSchema.Validator.Error.AdditionalItems, ExJsonSchema.Validator.Error.AdditionalProperties, ExJsonSchema.Validator.Error.AllOf, ExJsonSchema.Validator.Error.AnyOf, ExJsonSchema.Validator.Error.Const, ExJsonSchema.Validator.Error.Contains, ExJsonSchema.Validator.Error.ContentEncoding, ExJsonSchema.Validator.Error.ContentMediaType, ExJsonSchema.Validator.Error.Dependencies, ExJsonSchema.Validator.Error.Enum, ExJsonSchema.Validator.Error.False, ExJsonSchema.Validator.Error.Format, ExJsonSchema.Validator.Error.IfThenElse, ExJsonSchema.Validator.Error.ItemsNotAllowed, ExJsonSchema.Validator.Error.MaxItems, ExJsonSchema.Validator.Error.MaxLength, ExJsonSchema.Validator.Error.MaxProperties, ExJsonSchema.Validator.Error.Maximum, ExJsonSchema.Validator.Error.MinItems, ExJsonSchema.Validator.Error.MinLength, ExJsonSchema.Validator.Error.MinProperties, ExJsonSchema.Validator.Error.Minimum, ExJsonSchema.Validator.Error.MultipleOf, ExJsonSchema.Validator.Error.Not, ExJsonSchema.Validator.Error.OneOf, ExJsonSchema.Validator.Error.Pattern, ExJsonSchema.Validator.Error.PropertyNames, ExJsonSchema.Validator.Error.Required, ExJsonSchema.Validator.Error.Type, ExJsonSchema.Validator.Error.UniqueItems, Float, Geo.GeometryCollection, Geo.LineString, Geo.LineStringZ, Geo.LineStringZM, Geo.MultiLineString, Geo.MultiLineStringZ, Geo.MultiPoint, Geo.MultiPointZ, Geo.MultiPolygon, Geo.MultiPolygonZ, Geo.Point, Geo.PointM, Geo.PointZ, Geo.PointZM, Geo.Polygon, Geo.PolygonZ, Hex.Solver.Assignment, Hex.Solver.Constraints.Empty, Hex.Solver.Constraints.Range, Hex.Solver.Constraints.Union, Hex.Solver.Incompatibility, Hex.Solver.PackageRange, Hex.Solver.Term, Integer, List, NaiveDateTime, Phoenix.LiveComponent.CID, Postgrex.Copy, Postgrex.Query, Time, URI, Version, Version.Requirement
(elixir 1.14.5) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir 1.14.5) lib/string/chars.ex:22: String.Chars.to_string/1
(elixir 1.14.5) lib/uri.ex:153: URI.encode_kv_pair/2
(elixir 1.14.5) lib/enum.ex:1755: anonymous fn/2 in Enum.map_join/3
(elixir 1.14.5) lib/enum.ex:1725: anonymous fn/4 in Enum.map_intersperse/3
(stdlib 4.3.1.4) maps.erl:411: :maps.fold_1/3
(elixir 1.14.5) lib/enum.ex:2480: Enum.map_intersperse/3
(elixir 1.14.5) lib/enum.ex:1755: Enum.map_join/3
(ex_aws 2.2.5) lib/ex_aws/operation/query.ex:23: ExAws.Operation.ExAws.Operation.Query.perform/2
(ex_aws_sts 2.3.0) lib/ex_aws/sts/auth_cache/assume_role_credentials_adapter.ex:36: ExAws.STS.AuthCache.AssumeRoleCredentialsAdapter.get_security_credentials/3
(ex_aws 2.2.5) lib/ex_aws/config/auth_cache.ex:75: ExAws.Config.AuthCache.refresh_awscli_config/3
(ex_aws 2.2.5) lib/ex_aws/config/auth_cache.ex:50: ExAws.Config.AuthCache.handle_call/3
(stdlib 4.3.1.4) gen_server.erl:1149: :gen_server.try_handle_call/4
(stdlib 4.3.1.4) gen_server.erl:1178: :gen_server.handle_msg/6
(stdlib 4.3.1.4) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
(elixir 1.14.5) lib/gen_server.ex:1038: GenServer.call/3
(ex_aws 2.2.5) lib/ex_aws/config.ex:98: ExAws.Config.retrieve_runtime_value/2
(elixir 1.14.5) lib/stream.ex:612: anonymous fn/4 in Stream.map/2
(elixir 1.14.5) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.5) lib/stream.ex:1813: Enumerable.Stream.do_each/4
(elixir 1.14.5) lib/enum.ex:1150: Enum.find/3
(ex_aws 2.2.5) lib/ex_aws/config.ex:79: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
(stdlib 4.3.1.4) maps.erl:411: :maps.fold_1/3
(ex_aws 2.2.5) lib/ex_aws/config.ex:38: ExAws.Config.new/2
(ex_aws 2.2.5) lib/ex_aws.ex:71: ExAws.request/2
(waffle 1.1.10) lib/waffle/storage/s3.ex:218: Waffle.Storage.S3.do_put_stream/3
(waffle 1.1.10) lib/waffle/actions/store.ex:139: Waffle.Actions.Store.put_version/3
(elixir 1.14.5) lib/task/supervised.ex:89: Task.Supervised.invoke_mfa/2
(elixir 1.14.5) lib/task/supervised.ex:34: Task.Supervised.reply/4
(stdlib 4.3.1.4) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Function: #Function<1.121210460/0 in Waffle.Actions.Store.async_put_version/3>
Args: []
** (EXIT from #PID<0.1789.0>) shell process exited with reason: exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_awscli_config, "default", 30000}, 30000)
** (EXIT) an exception was raised:
** (Protocol.UndefinedError) protocol String.Chars not implemented for {:system, "AWS_ROLE_ARN"} of type Tuple. This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, ExJsonSchema.Validator.Error.AdditionalItems, ExJsonSchema.Validator.Error.AdditionalProperties, ExJsonSchema.Validator.Error.AllOf, ExJsonSchema.Validator.Error.AnyOf, ExJsonSchema.Validator.Error.Const, ExJsonSchema.Validator.Error.Contains, ExJsonSchema.Validator.Error.ContentEncoding, ExJsonSchema.Validator.Error.ContentMediaType, ExJsonSchema.Validator.Error.Dependencies, ExJsonSchema.Validator.Error.Enum, ExJsonSchema.Validator.Error.False, ExJsonSchema.Validator.Error.Format, ExJsonSchema.Validator.Error.IfThenElse, ExJsonSchema.Validator.Error.ItemsNotAllowed, ExJsonSchema.Validator.Error.MaxItems, ExJsonSchema.Validator.Error.MaxLength, ExJsonSchema.Validator.Error.MaxProperties, ExJsonSchema.Validator.Error.Maximum, ExJsonSchema.Validator.Error.MinItems, ExJsonSchema.Validator.Error.MinLength, ExJsonSchema.Validator.Error.MinProperties, ExJsonSchema.Validator.Error.Minimum, ExJsonSchema.Validator.Error.MultipleOf, ExJsonSchema.Validator.Error.Not, ExJsonSchema.Validator.Error.OneOf, ExJsonSchema.Validator.Error.Pattern, ExJsonSchema.Validator.Error.PropertyNames, ExJsonSchema.Validator.Error.Required, ExJsonSchema.Validator.Error.Type, ExJsonSchema.Validator.Error.UniqueItems, Float, Geo.GeometryCollection, Geo.LineString, Geo.LineStringZ, Geo.LineStringZM, Geo.MultiLineString, Geo.MultiLineStringZ, Geo.MultiPoint, Geo.MultiPointZ, Geo.MultiPolygon, Geo.MultiPolygonZ, Geo.Point, Geo.PointM, Geo.PointZ, Geo.PointZM, Geo.Polygon, Geo.PolygonZ, Hex.Solver.Assignment, Hex.Solver.Constraints.Empty, Hex.Solver.Constraints.Range, Hex.Solver.Constraints.Union, Hex.Solver.Incompatibility, Hex.Solver.PackageRange, Hex.Solver.Term, Integer, List, NaiveDateTime, Phoenix.LiveComponent.CID, Postgrex.Copy, Postgrex.Query, Time, URI, Version, Version.Requirement
(elixir 1.14.5) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir 1.14.5) lib/string/chars.ex:22: String.Chars.to_string/1
(elixir 1.14.5) lib/uri.ex:153: URI.encode_kv_pair/2
(elixir 1.14.5) lib/enum.ex:1755: anonymous fn/2 in Enum.map_join/3
(elixir 1.14.5) lib/enum.ex:1725: anonymous fn/4 in Enum.map_intersperse/3
(stdlib 4.3.1.4) maps.erl:411: :maps.fold_1/3
(elixir 1.14.5) lib/enum.ex:2480: Enum.map_intersperse/3
(elixir 1.14.5) lib/enum.ex:1755: Enum.map_join/3
(ex_aws 2.2.5) lib/ex_aws/operation/query.ex:23: ExAws.Operation.ExAws.Operation.Query.perform/2
(ex_aws_sts 2.3.0) lib/ex_aws/sts/auth_cache/assume_role_credentials_adapter.ex:36: ExAws.STS.AuthCache.AssumeRoleCredentialsAdapter.get_security_credentials/3
(ex_aws 2.2.5) lib/ex_aws/config/auth_cache.ex:75: ExAws.Config.AuthCache.refresh_awscli_config/3
(ex_aws 2.2.5) lib/ex_aws/config/auth_cache.ex:50: ExAws.Config.AuthCache.handle_call/3
(stdlib 4.3.1.4) gen_server.erl:1149: :gen_server.try_handle_call/4
(stdlib 4.3.1.4) gen_server.erl:1178: :gen_server.handle_msg/6
(stdlib 4.3.1.4) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Setup
Erlang/OTP 25 [erts-13.2.2.9] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1]
Elixir 1.14.5 (compiled with Erlang/OTP 25)
Behavior
Based on the following configuration provided in the 2.3 documentation:
Expected behavior
assume_role_requestparams should contain a well-formedrole_arn, not a tuple.What happens
The library currently keeps the role_arn as-is in the AWS query:
Resulting in this stacktrace: