juspay_expresscheckout

Build log

nerves_system_x86_64

juspay_expresscheckout 0.1.0 · fail · run juspay_expresscheckout-0.1.0-1790965298173
664 of 664 lines
1Resolving Hex dependencies...2Resolution completed in 0.205s3Unchanged:4  certifi 1.0.05  circular_buffer 1.1.06  elixir_make 0.10.07  hackney 1.6.6 RETIRED! VULNERABLE!8    (invalid)910    EEF-CVE-2026-47075 (MEDIUM)11    aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf12    CR/LF injection in query parameter in hackney13    https://osv.dev/vulnerability/EEF-CVE-2026-470751415    GHSA-vq52-99r9-h5pw (LOW)16    aka: CVE-2025-121117    Server-side Request Forgery (SSRF) in hackney18    https://osv.dev/vulnerability/GHSA-vq52-99r9-h5pw1920    EEF-CVE-2026-47071 (HIGH)21    aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr22    SOCKS5 TLS upgrade ignores caller timeout in hackney23    https://osv.dev/vulnerability/EEF-CVE-2026-470712425    GHSA-9fm9-hp7p-53mf (LOW)26    aka: CVE-2025-386427    Hackney fails to properly release HTTP connections to the pool28    https://osv.dev/vulnerability/GHSA-9fm9-hp7p-53mf2930    EEF-CVE-2026-47069 (LOW)31    aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw232    CRLF injection in cookie domain/path options in hackney33    https://osv.dev/vulnerability/EEF-CVE-2026-470693435    EEF-CVE-2026-47076 (MEDIUM)36    aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq37    SSRF allowlist bypass via percent-encoded host in hackney38    https://osv.dev/vulnerability/EEF-CVE-2026-4707639  httpoison 0.9.240  idna 4.0.041  interactive_cmd 0.1.442  juspay_expresscheckout 0.1.043  metrics 1.0.144  mimerl 1.0.245  nerves 2.0.0-pre.246  nerves_discovery 0.1.547  nerves_logging 0.2.448  nerves_runtime 0.13.1349  nerves_system_bbb 2.30.250  nerves_system_br 1.34.451  nerves_system_mangopi_mq_pro 0.17.252  nerves_system_qemu_aarch64 0.4.253  nerves_system_rpi0 2.1.254  nerves_system_rpi4 2.1.255  nerves_system_rpi5 2.1.256  nerves_system_trellis 0.5.057  nerves_system_x86_64 1.34.258  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.159  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.160  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.161  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.162  nerves_toolchain_x86_64_nerves_linux_musl 15.3.163  nerves_uevent 0.1.764  poison 2.2.065  property_table 0.3.466  ring_logger 0.11.767  ssl_verify_fun 1.1.168  tablet 0.3.369  toolshed 0.5.070  uboot_env 1.0.271* Getting juspay_expresscheckout (Hex package)72* Getting nerves (Hex package)73* Getting ring_logger (Hex package)74* Getting toolshed (Hex package)75* Getting nerves_runtime (Hex package)76* Getting nerves_system_bbb (Hex package)77* Getting nerves_system_mangopi_mq_pro (Hex package)78* Getting nerves_system_qemu_aarch64 (Hex package)79* Getting nerves_system_rpi0 (Hex package)80* Getting nerves_system_rpi4 (Hex package)81* Getting nerves_system_rpi5 (Hex package)82* Getting nerves_system_trellis (Hex package)83* Getting nerves_system_x86_64 (Hex package)84* Getting nerves_system_br (Hex package)85* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)86* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)87* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)88* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)89* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)90* Getting nerves_logging (Hex package)91* Getting nerves_uevent (Hex package)92* Getting uboot_env (Hex package)93* Getting elixir_make (Hex package)94* Getting property_table (Hex package)95* Getting circular_buffer (Hex package)96* Getting interactive_cmd (Hex package)97* Getting nerves_discovery (Hex package)98* Getting tablet (Hex package)99* Getting hackney (Hex package)100* Getting httpoison (Hex package)101* Getting poison (Hex package)102* Getting certifi (Hex package)103* Getting idna (Hex package)104* Getting metrics (Hex package)105* Getting mimerl (Hex package)106* Getting ssl_verify_fun (Hex package)107Found retired packages, see above for details108Found packages with security advisories, see above for details109    warning: String.strip/1 is deprecated. Use String.trim/1 instead110    │111  4 │   @version File.read!("VERSION") |> String.strip112    │                                            ~113    │114    └─ /work/proj/deps_x86_64/poison/mix.exs:4:44: Poison.Mixfile (module)115116==> poison117Compiling 4 files (.ex)118    warning: using single-quoted strings to represent charlists is deprecated.119    Use ~c"" if you indeed want a charlist or use "" instead.120    You may run "mix format --migrate" to change all single-quoted121    strings to use the ~c sigil and fix this warning.122    │123 89 │   for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do124    │                               ~125    │126    └─ lib/poison/encoder.ex:89:31127128    warning: using single-quoted strings to represent charlists is deprecated.129    Use ~c"" if you indeed want a charlist or use "" instead.130    You may run "mix format --migrate" to change all single-quoted131    strings to use the ~c sigil and fix this warning.132    │133 89 │   for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do134    │                                                ~135    │136    └─ lib/poison/encoder.ex:89:48137138     warning: using single-quoted strings to represent charlists is deprecated.139     Use ~c"" if you indeed want a charlist or use "" instead.140     You may run "mix format --migrate" to change all single-quoted141     strings to use the ~c sigil and fix this warning.142     │143 127 │   defp chunk_size(<<char>> <> _, _mode, acc) when char <= 0x1F or char in '"\\' do144     │                                                                           ~145     │146     └─ lib/poison/encoder.ex:127:75147148    warning: using single-quoted strings to represent charlists is deprecated.149    Use ~c"" if you indeed want a charlist or use "" instead.150    You may run "mix format --migrate" to change all single-quoted151    strings to use the ~c sigil and fix this warning.152    │153 67 │   defp value(<<char, _ :: binary>> = string, _keys) when char in '-0123456789' do154    │                                                                  ~155    │156    └─ lib/poison/parser.ex:67:66157158     warning: using single-quoted strings to represent charlists is deprecated.159     Use ~c"" if you indeed want a charlist or use "" instead.160     You may run "mix format --migrate" to change all single-quoted161     strings to use the ~c sigil and fix this warning.162     │163 134 │   defp number_int(<<char, _ :: binary>> = string, acc) when char in '123456789' do164     │                                                                     ~165     │166     └─ lib/poison/parser.ex:134:69167168     warning: using single-quoted strings to represent charlists is deprecated.169     Use ~c"" if you indeed want a charlist or use "" instead.170     You may run "mix format --migrate" to change all single-quoted171     strings to use the ~c sigil and fix this warning.172     │173 150 │   defp number_exp(<<e>> <> rest, frac, acc) when e in 'eE' do174     │                                                       ~175     │176     └─ lib/poison/parser.ex:150:55177178     warning: using single-quoted strings to represent charlists is deprecated.179     Use ~c"" if you indeed want a charlist or use "" instead.180     You may run "mix format --migrate" to change all single-quoted181     strings to use the ~c sigil and fix this warning.182     │183 176 │   defp number_digits(<<char>> <> rest = string) when char in '0123456789' do184     │                                                              ~185     │186     └─ lib/poison/parser.ex:176:62187188     warning: using single-quoted strings to represent charlists is deprecated.189     Use ~c"" if you indeed want a charlist or use "" instead.190     You may run "mix format --migrate" to change all single-quoted191     strings to use the ~c sigil and fix this warning.192     │193 184 │   defp number_digits_count(<<char>> <> rest, acc) when char in '0123456789' do194     │                                                                ~195     │196     └─ lib/poison/parser.ex:184:64197198     warning: using single-quoted strings to represent charlists is deprecated.199     Use ~c"" if you indeed want a charlist or use "" instead.200     You may run "mix format --migrate" to change all single-quoted201     strings to use the ~c sigil and fix this warning.202     │203 208 │   for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do204     │                               ~205     │206     └─ lib/poison/parser.ex:208:31207208     warning: using single-quoted strings to represent charlists is deprecated.209     Use ~c"" if you indeed want a charlist or use "" instead.210     You may run "mix format --migrate" to change all single-quoted211     strings to use the ~c sigil and fix this warning.212     │213 208 │   for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do214     │                                            ~215     │216     └─ lib/poison/parser.ex:208:44217218     warning: using single-quoted strings to represent charlists is deprecated.219     Use ~c"" if you indeed want a charlist or use "" instead.220     You may run "mix format --migrate" to change all single-quoted221     strings to use the ~c sigil and fix this warning.222     │223 218 │     when a1 in 'dD' and a2 in 'dD'224     │                ~225     │226     └─ lib/poison/parser.ex:218:16227228     warning: using single-quoted strings to represent charlists is deprecated.229     Use ~c"" if you indeed want a charlist or use "" instead.230     You may run "mix format --migrate" to change all single-quoted231     strings to use the ~c sigil and fix this warning.232     │233 218 │     when a1 in 'dD' and a2 in 'dD'234     │                               ~235     │236     └─ lib/poison/parser.ex:218:31237238     warning: using single-quoted strings to represent charlists is deprecated.239     Use ~c"" if you indeed want a charlist or use "" instead.240     You may run "mix format --migrate" to change all single-quoted241     strings to use the ~c sigil and fix this warning.242     │243 219 │     and (b1 in '89abAB')244     │                ~245     │246     └─ lib/poison/parser.ex:219:16247248     warning: using single-quoted strings to represent charlists is deprecated.249     Use ~c"" if you indeed want a charlist or use "" instead.250     You may run "mix format --migrate" to change all single-quoted251     strings to use the ~c sigil and fix this warning.252     │253 253 │   defp skip_whitespace(<<char>> <> rest) when char in '\s\n\t\r' do254     │                                                       ~255     │256     └─ lib/poison/parser.ex:253:55257258    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead259    │260 22 │   if Application.get_env(:poison, :native) do261    │                  ~262    │263    └─ lib/poison/parser.ex:22:18: Poison.Parser (module)264265    warning: use Bitwise is deprecated. import Bitwise instead266    │267 26 │   use Bitwise268    │   ~~~~~~~~~~~269    │270    └─ lib/poison/parser.ex:26: Poison.Parser (module)271272     warning: the variable "count" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator273     │274 178 │     <<digits :: binary-size(count), rest :: binary>> = string275     │                             ~276     │277     └─ lib/poison/parser.ex:178:29: Poison.Parser.number_digits/1278279     warning: the variable "n" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator280     │281 204 │     <<chunk :: binary-size(n), rest :: binary>> = string282     │                            ~283     │284     └─ lib/poison/parser.ex:204:28: Poison.Parser.string_continue/2285286    warning: use Bitwise is deprecated. import Bitwise instead287    │288 79 │   use Bitwise289    │   ~~~~~~~~~~~290    │291    └─ lib/poison/encoder.ex:79: Poison.Encoder.BitString (module)292293     warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator294     │295 123 │     <<chunk :: binary-size(size), rest :: binary>> = string296     │                            ~297     │298     └─ lib/poison/encoder.ex:123:28: Poison.Encoder.BitString.escape/2299300     warning: HashDict.size/1 is deprecated. Use maps and the Map module instead301     │302 283 │     if HashDict.size(dict) < 1 do303     │                 ~304     │305     └─ lib/poison/encoder.ex:283:17: Poison.Encoder.HashDict.encode/2306307     warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead308     │309 161 │     case Integer.to_char_list(char, 16) do310     │                  ~311     │312     └─ lib/poison/encoder.ex:161:18: Poison.Encoder.BitString.seq/1313314Generated poison app315==> nerves_compatibility_test316===> Analyzing applications...317===> Compiling certifi318===> Analyzing applications...319===> Compiling hackney320     ┌─ src/hackney_trace.erl:321     │322 130 │    (catch io:format(standard_io, "stop trace at ~s~n", [format_timestamp(Timestamp)])),323     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.324Compile directive 'nowarn_deprecated_catch' can be used to suppress325warnings in selected modules.326327     ┌─ src/hackney_trace.erl:328     │329 137 │    (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),330     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.331Compile directive 'nowarn_deprecated_catch' can be used to suppress332warnings in selected modules.333334     ┌─ src/hackney_trace.erl:335     │336 144 │    (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),337     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.338Compile directive 'nowarn_deprecated_catch' can be used to suppress339warnings in selected modules.340341     ┌─ src/hackney_trace.erl:342     │343 145 │    (catch file:close(Fd)),344     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.345Compile directive 'nowarn_deprecated_catch' can be used to suppress346warnings in selected modules.347348     ┌─ src/hackney_trace.erl:349     │350 152 │    (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),351     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.352Compile directive 'nowarn_deprecated_catch' can be used to suppress353warnings in selected modules.354355     ┌─ src/hackney_trace.erl:356     │357 153 │    (catch file:close(Fd)),358     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.359Compile directive 'nowarn_deprecated_catch' can be used to suppress360warnings in selected modules.361362     ┌─ src/hackney_trace.erl:363     │364 159 │    (catch print_hackney_trace(Fd, Sev, Timestamp, Who,365     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.366Compile directive 'nowarn_deprecated_catch' can be used to suppress367warnings in selected modules.368369     ┌─ src/hackney_trace.erl:370     │371 163 │    (catch print_trace(Fd, Event)),372     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.373Compile directive 'nowarn_deprecated_catch' can be used to suppress374warnings in selected modules.375376377    ┌─ src/hackney_ssl.erl:378    │379 65 │    case lists:keymember(ecdh_rsa, 1, ssl:cipher_suites()) of380    │                                      ╰── Warning: ssl:cipher_suites/0 is removed; use ssl:cipher_suites/2,3 instead381382383    ┌─ src/hackney_stream.erl:384    │385 35 │          erlang:get_stacktrace()},386    │          ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace387388389    ┌─ src/hackney_pool.erl:390    │391 90 │              catch Transport:close(Socket),392    │              ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.393Compile directive 'nowarn_deprecated_catch' can be used to suppress394warnings in selected modules.395396    ┌─ src/hackney_pool.erl:397    │398 94 │          catch Transport:close(Socket),399    │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.400Compile directive 'nowarn_deprecated_catch' can be used to suppress401warnings in selected modules.402403     ┌─ src/hackney_pool.erl:404     │405 285 │                   catch Transport:close(Socket),406     │                   ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.407Compile directive 'nowarn_deprecated_catch' can be used to suppress408warnings in selected modules.409410     ┌─ src/hackney_pool.erl:411     │412 381 │                  catch Transport:controlling_process(S, self()),413     │                  ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.414Compile directive 'nowarn_deprecated_catch' can be used to suppress415warnings in selected modules.416417     ┌─ src/hackney_pool.erl:418     │419 403 │          catch Transport:close(Socket),420     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.421Compile directive 'nowarn_deprecated_catch' can be used to suppress422warnings in selected modules.423424     ┌─ src/hackney_pool.erl:425     │426 493 │              catch Transport:close(Socket),427     │              ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.428Compile directive 'nowarn_deprecated_catch' can be used to suppress429warnings in selected modules.430431432     ┌─ src/hackney_manager.erl:433     │434 122 │          catch Transport:controlling_process(Socket, self()),435     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.436Compile directive 'nowarn_deprecated_catch' can be used to suppress437warnings in selected modules.438439     ┌─ src/hackney_manager.erl:440     │441 123 │          catch Transport:close(Socket),442     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.443Compile directive 'nowarn_deprecated_catch' can be used to suppress444warnings in selected modules.445446     ┌─ src/hackney_manager.erl:447     │448 255 │          catch Transport:controlling_process(Socket, self()),449     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.450Compile directive 'nowarn_deprecated_catch' can be used to suppress451warnings in selected modules.452453     ┌─ src/hackney_manager.erl:454     │455 256 │          catch Transport:close(Socket),456     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.457Compile directive 'nowarn_deprecated_catch' can be used to suppress458warnings in selected modules.459460     ┌─ src/hackney_manager.erl:461     │462 456 │    case catch hackney_stream:start_link(StreamTo2, Ref, Client) of463     │         ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.464Compile directive 'nowarn_deprecated_catch' can be used to suppress465warnings in selected modules.466467468==> httpoison469Compiling 2 files (.ex)470Generated httpoison app471==> juspay_expresscheckout472Compiling 8 files (.ex)473    warning: outdented heredoc line. The contents inside the heredoc should be indented at the same level as the closing """. The following is forbidden:474475        def text do476          """477        contents478          """479        end480481    Instead make sure the contents are indented as much as the heredoc closing:482483        def text do484          """485          contents486          """487        end488489    The current heredoc line is indented too little490    │491 45 │  List all the cards stored for a customer. This API gives back only tokens and other metadata relevant to the cards stored in JusPay Locker.492    │       ~493    │494    └─ lib/elixir_lib/Cards.ex:45:7495496    warning: variable "response" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used)497    │498 15 │     response = response <> "\nMessage : " <> msg499    │     ~~~~~~~~500    │501    └─ lib/elixir_lib/JuspayException.ex:15:5: Juspay.Exception.juspay_error/3502503    warning: outdented heredoc line. The contents inside the heredoc should be indented at the same level as the closing """. The following is forbidden:504505        def text do506          """507        contents508          """509        end510511    Instead make sure the contents are indented as much as the heredoc closing:512513        def text do514          """515          contents516          """517        end518519    The current heredoc line is indented too little520    │521 13 │   Create a payment transaction for Credit or Debit card.522    │        ~523    │524    └─ lib/elixir_lib/Payments.ex:13:8525526    warning: using single-quoted strings to represent charlists is deprecated.527    Use ~c"" if you indeed want a charlist or use "" instead.528    You may run "mix format --migrate" to change all single-quoted529    strings to use the ~c sigil and fix this warning.530    │531 69 │     method = 'POST'532    │              ~533    │534    └─ lib/elixir_lib/Payments.ex:69:14535536    warning: using single-quoted strings to represent charlists is deprecated.537    Use ~c"" if you indeed want a charlist or use "" instead.538    You may run "mix format --migrate" to change all single-quoted539    strings to use the ~c sigil and fix this warning.540    │541 70 │     url = '/txns'542    │           ~543    │544    └─ lib/elixir_lib/Payments.ex:70:11545546    warning: using single-quoted strings to represent charlists is deprecated.547    Use ~c"" if you indeed want a charlist or use "" instead.548    You may run "mix format --migrate" to change all single-quoted549    strings to use the ~c sigil and fix this warning.550    │551 71 │    parameters =parameters++ [ payment_method_type: "CARD", format: 'json' ]552    │                                                                    ~553    │554    └─ lib/elixir_lib/Payments.ex:71:68555556     warning: using single-quoted strings to represent charlists is deprecated.557     Use ~c"" if you indeed want a charlist or use "" instead.558     You may run "mix format --migrate" to change all single-quoted559     strings to use the ~c sigil and fix this warning.560     │561 159 │     method = 'POST'562     │              ~563     │564     └─ lib/elixir_lib/Payments.ex:159:14565566     warning: using single-quoted strings to represent charlists is deprecated.567     Use ~c"" if you indeed want a charlist or use "" instead.568     You may run "mix format --migrate" to change all single-quoted569     strings to use the ~c sigil and fix this warning.570     │571 160 │     url = '/txns'572     │           ~573     │574     └─ lib/elixir_lib/Payments.ex:160:11575576     warning: using single-quoted strings to represent charlists is deprecated.577     Use ~c"" if you indeed want a charlist or use "" instead.578     You may run "mix format --migrate" to change all single-quoted579     strings to use the ~c sigil and fix this warning.580     │581 161 │    parameters =parameters++ [ payment_method_type: "CARD", format: 'json' ]582     │                                                                    ~583     │584     └─ lib/elixir_lib/Payments.ex:161:68585586     warning: using single-quoted strings to represent charlists is deprecated.587     Use ~c"" if you indeed want a charlist or use "" instead.588     You may run "mix format --migrate" to change all single-quoted589     strings to use the ~c sigil and fix this warning.590     │591 292 │     method = 'POST'592     │              ~593     │594     └─ lib/elixir_lib/Payments.ex:292:14595596     warning: using single-quoted strings to represent charlists is deprecated.597     Use ~c"" if you indeed want a charlist or use "" instead.598     You may run "mix format --migrate" to change all single-quoted599     strings to use the ~c sigil and fix this warning.600     │601 293 │     url = '/txns'602     │           ~603     │604     └─ lib/elixir_lib/Payments.ex:293:11605606     warning: using single-quoted strings to represent charlists is deprecated.607     Use ~c"" if you indeed want a charlist or use "" instead.608     You may run "mix format --migrate" to change all single-quoted609     strings to use the ~c sigil and fix this warning.610     │611 294 │    parameters =parameters++ [ payment_method_type: "WALLET", format: 'json' ]612     │                                                                      ~613     │614     └─ lib/elixir_lib/Payments.ex:294:70615616    warning: outdented heredoc line. The contents inside the heredoc should be indented at the same level as the closing """. The following is forbidden:617618        def text do619          """620        contents621          """622        end623624    Instead make sure the contents are indented as much as the heredoc closing:625626        def text do627          """628          contents629          """630        end631632    The current heredoc line is indented too little633    │634 28 │  Wallets can be listed only in the context of a Customer. This API will return list of linked wallets for a given customer.635    │       ~636    │637    └─ lib/elixir_lib/Wallets.ex:28:7638639    warning: variable "default" is unused (if the variable is not meant to be used, prefix it with an underscore)640    │641 16 │       {:error,default} -> "production"642    │               ~643    │644    └─ lib/elixir_lib/Juspay.ex:16:15: Juspay.request/3645646    warning: variable "parameters" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used)647    │648 52 │    parameters = Enum.into(parameters,[])649    │    ~~~~~~~~~~650    │651    └─ lib/elixir_lib/Juspay.ex:52:4: Juspay.check_params/1652653    error: undefined variable "invalidArgumentError"654    │655 50 │       raise invalidArgumentError656    │             ^^^^^^^^^^^^^^^^^^^^657    │658    └─ lib/elixir_lib/Juspay.ex:50:13: Juspay.check_params/1659660661== Compilation error in file lib/elixir_lib/Juspay.ex ==662** (CompileError) lib/elixir_lib/Juspay.ex: cannot compile module Juspay (errors have been logged)663664could not compile dependency :juspay_expresscheckout, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile juspay_expresscheckout --force", update it with "mix deps.update juspay_expresscheckout" or clean it with "mix deps.clean juspay_expresscheckout"