Build log
host
helen 0.0.3 · fail · run helen-0.0.3-1791193819543
758 of 758 lines
1Resolving Hex dependencies...2Resolution completed in 1.816s3Unchanged:4 certifi 2.15.05 circular_buffer 1.1.06 combine 0.10.07 crontab 1.2.08 db_connection 2.10.29 decimal 3.1.110 deep_merge 1.0.211 ecto 3.14.212 ecto_sql 3.14.013 elixir_make 0.10.014 expo 1.1.115 gen_stage 0.14.316 gen_state_machine 3.0.017 gettext 0.26.218 hackney 1.25.0 VULNERABLE!19 EEF-CVE-2026-47071 (HIGH)20 aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr21 SOCKS5 TLS upgrade ignores caller timeout in hackney22 https://osv.dev/vulnerability/EEF-CVE-2026-470712324 EEF-CVE-2026-47076 (MEDIUM)25 aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq26 SSRF allowlist bypass via percent-encoded host in hackney27 https://osv.dev/vulnerability/EEF-CVE-2026-470762829 EEF-CVE-2026-47069 (LOW)30 aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw231 CRLF injection in cookie domain/path options in hackney32 https://osv.dev/vulnerability/EEF-CVE-2026-470693334 EEF-CVE-2026-47075 (MEDIUM)35 aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf36 CR/LF injection in query parameter in hackney37 https://osv.dev/vulnerability/EEF-CVE-2026-4707538 helen 0.0.339 httpoison 1.8.240 idna 6.1.141 influxql 0.2.142 instream 0.22.043 interactive_cmd 0.1.444 jason 1.4.545 metrics 1.0.146 mimerl 1.5.047 msgpax 2.4.048 nerves 2.0.0-pre.249 nerves_discovery 0.1.550 nerves_logging 0.2.451 nerves_runtime 0.13.1352 nerves_system_bbb 2.30.253 nerves_system_br 1.34.454 nerves_system_mangopi_mq_pro 0.17.255 nerves_system_qemu_aarch64 0.4.256 nerves_system_rpi0 2.1.257 nerves_system_rpi4 2.1.258 nerves_system_rpi5 2.1.259 nerves_system_trellis 0.5.060 nerves_system_x86_64 1.34.261 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.162 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.163 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.164 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.165 nerves_toolchain_x86_64_nerves_linux_musl 15.3.166 nerves_uevent 0.1.767 pane 0.5.168 parse_trans 3.4.169 poison 3.1.070 poolboy 1.5.271 postgrex 0.22.472 property_table 0.3.473 quantum 2.2.774 ring_logger 0.11.775 scribe 0.11.176 ssl_verify_fun 1.1.777 tablet 0.3.378 telemetry 1.4.279 timex 3.7.1380 toolshed 0.5.081 tortoise 0.10.082 tzdata 1.2.283 uboot_env 1.0.284 unicode_util_compat 0.7.185 uuid 1.1.886Found packages with security advisories, see above for details87All dependencies have been fetched88 warning: String.strip/1 is deprecated. Use String.trim/1 instead89 │90 4 │ @version File.read!("VERSION") |> String.strip91 │ ~92 │93 └─ /work/proj/deps/poison/mix.exs:4:44: Poison.Mixfile (module)9495==> pane96Compiling 3 files (.ex)97Generated pane app98==> tortoise99Compiling 37 files (.ex)100 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator101 │102 108 │ <<package::binary-size(length), rest::binary>> = buffer103 │ ~104 │105 └─ lib/tortoise/connection/receiver.ex:108:28: Tortoise.Connection.Receiver.handle_event/4106107 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead108 │109 224 │ Logger.warn("Unexpected async result")110 │ ~111 │112 └─ lib/tortoise/connection/controller.ex:224:16: Tortoise.Connection.Controller.handle_info/2113114 warning: the variable "topic_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator115 │116 66 │ <<topic::binary-size(topic_length), payload::binary>> = msg117 │ ~118 │119 └─ lib/tortoise/package/publish.ex:66:26: Tortoise.Package.Publish.decode_message/1120121 warning: the variable "topic_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator122 │123 71 │ <<topic::binary-size(topic_length), identifier::big-integer-size(16), payload::binary>> = msg124 │ ~125 │126 └─ lib/tortoise/package/publish.ex:71:26: Tortoise.Package.Publish.decode_message_with_id/1127128 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator129 │130 81 │ <<item::binary-size(length), rest::binary>> = payload131 │ ~132 │133 └─ lib/tortoise/package/connect.ex:81:25: Tortoise.Package.Connect.decode_length_prefixed/1134135 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead136 │137 22 │ Logger.warn("Connection has been dropped")138 │ ~139 │140 └─ lib/tortoise/handler/logger.ex:22:12: Tortoise.Handler.Logger.connection/2141142 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead143 │144 27 │ Logger.warn("Connection is terminating")145 │ ~146 │147 └─ lib/tortoise/handler/logger.ex:27:12: Tortoise.Handler.Logger.connection/2148149 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead150 │151 37 │ Logger.warn("Subscribed to #{topic}; requested #{req} but got accepted with QoS #{qos}")152 │ ~153 │154 └─ lib/tortoise/handler/logger.ex:37:12: Tortoise.Handler.Logger.subscription/3155156 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead157 │158 57 │ Logger.warn("Client has been terminated with reason: #{inspect(reason)}")159 │ ~160 │161 └─ lib/tortoise/handler/logger.ex:57:12: Tortoise.Handler.Logger.terminate/2162163 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator164 │165 41 │ <<topic::binary-size(length), return_code::integer-size(8), rest::binary>> = rest166 │ ~167 │168 └─ lib/tortoise/package/subscribe.ex:41:26: Tortoise.Package.Subscribe.decode_topics/1169170 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator171 │172 39 │ <<topic::binary-size(length), rest::binary>> = rest173 │ ~174 │175 └─ lib/tortoise/package/unsubscribe.ex:39:26: Tortoise.Package.Unsubscribe.decode_topics/1176177 warning: a struct for Tortoise.Connection is expected on struct update:178179 %Tortoise.Connection{state | status: status}180181 but got type:182183 dynamic(%{..., client_id: term(), status: term()})184185 where "state" was given the type:186187 # type: dynamic(%{..., client_id: term(), status: term()})188 # from: lib/tortoise/connection.ex:489:50189 %{client_id: client_id, status: current} = state190191 when defining the variable "state", you must also pattern match on "%Tortoise.Connection{}"192193 type warning found at:194 │195 496 │ {:noreply, %State{state | status: status}}196 │ ~197 │198 └─ lib/tortoise/connection.ex:496:20: Tortoise.Connection.handle_info/2199200 warning: a struct for Tortoise.Connection.Inflight is expected on struct update:201202 %Tortoise.Connection.Inflight{203 data204 | pending: Map.put_new(data.pending, track.identifier, track),205 order: [track.identifier | data.order]206 }207208 but got type:209210 dynamic(%{..., pending: term()})211212 where "data" was given the type:213214 # type: dynamic(%{..., pending: term()})215 # from: lib/tortoise/connection/inflight.ex:205:22216 assign_identifier(package, data.pending)217218 when defining the variable "data", you must also pattern match on "%Tortoise.Connection.Inflight{}"219220 type warning found at:221 │222 212 │ data = %State{223 │ ~224 │225 └─ lib/tortoise/connection/inflight.ex:212:12: Tortoise.Connection.Inflight.handle_event/4226227 warning: a struct for Tortoise.Connection is expected on struct update:228229 %Tortoise.Connection{state | status: status}230231 but got type:232233 dynamic(%{..., client_id: term(), status: term()})234235 where "state" was given the type:236237 # type: dynamic(%{..., client_id: term(), status: term()})238 # from: lib/tortoise/connection.ex:489:50239 %{client_id: client_id, status: current} = state240241 when defining the variable "state", you must also pattern match on "%Tortoise.Connection{}"242243 type warning found at:244 │245 500 │ {:noreply, %State{state | status: status}}246 │ ~247 │248 └─ lib/tortoise/connection.ex:500:20: Tortoise.Connection.handle_info/2249250 warning: a struct for Tortoise.Package.Subscribe is expected on struct update:251252 %Tortoise.Package.Subscribe{state.subscriptions | topics: topics}253254 but got type:255256 dynamic(%{..., topics: empty_list() or non_empty_list(term(), term())})257258 where "state" was given the types:259260 # type: dynamic(%{..., connect: %{..., client_id: term()}})261 # from: lib/tortoise/connection.ex:542:15262 client_id = state.connect.client_id263264 # type: dynamic(%{265 ...,266 connect: %{..., client_id: term()},267 subscriptions: %{..., topics: empty_list() or non_empty_list(term(), term())}268 })269 # from: lib/tortoise/connection.ex:551:26270 Keyword.drop(state.subscriptions.topics, unsubbed)271272 you must assign "state.subscriptions" to variable and pattern match on "%Tortoise.Package.Subscribe{}"273274 type warning found at:275 │276 552 │ subscriptions = %Package.Subscribe{state.subscriptions | topics: topics}277 │ ~278 │279 └─ lib/tortoise/connection.ex:552:25: Tortoise.Connection.handle_cast/2280281 warning: a struct for Tortoise.Connection.Controller is expected on struct update:282283 %Tortoise.Connection.Controller{state | ping: ping}284285 but got type:286287 dynamic(%{..., client_id: term(), ping: term()})288289 where "state" was given the types:290291 # type: dynamic(%{..., client_id: term()})292 # from: lib/tortoise/connection/controller.ex:140:51293 Tortoise.Connection.connection(state.client_id)294295 # type: dynamic(%{..., client_id: term(), ping: term()})296 # from: lib/tortoise/connection/controller.ex:143:21297 :queue.in({caller, time}, state.ping)298299 when defining the variable "state", you must also pattern match on "%Tortoise.Connection.Controller{}"300301 type warning found at:302 │303 144 │ {:noreply, %State{state | ping: ping}}304 │ ~305 │306 └─ lib/tortoise/connection/controller.ex:144:18: Tortoise.Connection.Controller.handle_cast/2307308 warning: a struct for Tortoise.Package.Connect is expected on struct update:309310 %Tortoise.Package.Connect{connect | will: last_will}311312 but got type:313314 dynamic()315316 where "connect" was given the type:317318 # type: dynamic()319 # from: lib/tortoise/connection.ex:589:74320 %Tortoise.Connection{connect: connect, handler: handler} = state321322 when defining the variable "connect", you must also pattern match on "%Tortoise.Package.Connect{}"323324 type warning found at:325 │326 596 │ updated_connect = %Connect{connect | will: last_will}327 │ ~328 │329 └─ lib/tortoise/connection.ex:596:27: Tortoise.Connection.maybe_update_last_will/1330331 warning: a struct for Tortoise.Connection.Controller is expected on struct update:332333 %Tortoise.Connection.Controller{state | awaiting: updated_awaiting}334335 but got type:336337 dynamic(%{..., awaiting: map(), client_id: term()})338339 where "state" was given the types:340341 # type: dynamic(%{..., client_id: term()})342 # from: lib/tortoise/connection/controller.ex:188:30343 Tortoise.Connection.subscribe(state.client_id, [{topic, qos}], opts)344345 # type: dynamic(%{..., awaiting: map(), client_id: term()})346 # from: lib/tortoise/connection/controller.ex:190:32347 Map.put_new(state.awaiting, ref, action)348349 when defining the variable "state", you must also pattern match on "%Tortoise.Connection.Controller{}"350351 type warning found at:352 │353 191 │ {:noreply, %State{state | awaiting: updated_awaiting}}354 │ ~355 │356 └─ lib/tortoise/connection/controller.ex:191:20: Tortoise.Connection.Controller.handle_info/2357358 warning: a struct for Tortoise.Connection.Controller is expected on struct update:359360 %Tortoise.Connection.Controller{state | awaiting: updated_awaiting}361362 but got type:363364 dynamic(%{..., awaiting: map(), client_id: term()})365366 where "state" was given the types:367368 # type: dynamic(%{..., client_id: term()})369 # from: lib/tortoise/connection/controller.ex:196:30370 Tortoise.Connection.unsubscribe(state.client_id, topic)371372 # type: dynamic(%{..., awaiting: map(), client_id: term()})373 # from: lib/tortoise/connection/controller.ex:198:32374 Map.put_new(state.awaiting, ref, action)375376 when defining the variable "state", you must also pattern match on "%Tortoise.Connection.Controller{}"377378 type warning found at:379 │380 199 │ {:noreply, %State{state | awaiting: updated_awaiting}}381 │ ~382 │383 └─ lib/tortoise/connection/controller.ex:199:20: Tortoise.Connection.Controller.handle_info/2384385 warning: a struct for Tortoise.Connection.Controller is expected on struct update:386387 %Tortoise.Connection.Controller{state | awaiting: updated_awaiting}388389 but got type:390391 dynamic(%{..., awaiting: map(), client_id: term()})392393 where "state" was given the types:394395 # type: dynamic(%{..., client_id: term()})396 # from: lib/tortoise/connection/controller.ex:221:81397 %{client_id: client_id} = state398399 # type: dynamic(%{..., awaiting: map(), client_id: term()})400 # from: lib/tortoise/connection/controller.ex:222:23401 Map.pop(state.awaiting, ref)402403 when defining the variable "state", you must also pattern match on "%Tortoise.Connection.Controller{}"404405 type warning found at:406 │407 228 │ {:noreply, %State{state | awaiting: updated_awaiting}}408 │ ~409 │410 └─ lib/tortoise/connection/controller.ex:228:20: Tortoise.Connection.Controller.handle_info/2411412 warning: a struct for Tortoise.Package.Connect is expected on struct update:413414 %Tortoise.Package.Connect{connect | clean_session: false}415416 but got type:417418 dynamic(%{..., client_id: term()})419420 where "connect" was given the type:421422 # type: dynamic(%{..., client_id: term()})423 # from: lib/tortoise/connection.ex:657:20424 Tortoise.Connection.Receiver.handle_socket(connect.client_id, connection)425426 when defining the variable "connect", you must also pattern match on "%Tortoise.Package.Connect{}"427428 type warning found at:429 │430 662 │ connect = %Connect{connect | clean_session: false}431 │ ~432 │433 └─ lib/tortoise/connection.ex:662:15: Tortoise.Connection.init_connection/2434435 warning: List.zip/1 is deprecated. Use Enum.zip/1 instead436 │437 234 │ List.zip([topics, acks])438 │ ~439 │440 └─ lib/tortoise/connection/inflight/track.ex:234:12: Tortoise.Connection.Inflight.Track.result/1441442 warning: a struct for Tortoise.Handler is expected on struct update:443444 %Tortoise.Handler{handler | state: initial_state}445446 but got type:447448 dynamic(%{..., initial_args: term(), module: atom()})449450 where "handler" was given the types:451452 # type: dynamic(%{..., module: atom()})453 # from: lib/tortoise/handler.ex:326:10454 apply(handler.module, :init, [handler.initial_args])455456 # type: dynamic(%{..., initial_args: term(), module: atom()})457 # from: lib/tortoise/handler.ex:326:10458 apply(handler.module, :init, [handler.initial_args])459460 when defining the variable "handler", you must also pattern match on "%Tortoise.Handler{}"461462 type warning found at:463 │464 328 │ {:ok, %__MODULE__{handler | state: initial_state}}465 │ ~466 │467 └─ lib/tortoise/handler.ex:328:15: Tortoise.Handler.execute/2468469 warning: a struct for Tortoise.Connection.Receiver is expected on struct update:470471 %Tortoise.Connection.Receiver{data | transport: transport, socket: socket, buffer: <<>>}472473 but got type:474475 dynamic()476477 where "data" was given the type:478479 # type: dynamic()480 # from: lib/tortoise/connection/receiver.ex:153:87481 data482483 when defining the variable "data", you must also pattern match on "%Tortoise.Connection.Receiver{}"484485 type warning found at:486 │487 163 │ new_data = %State{data | transport: transport, socket: socket, buffer: <<>>}488 │ ~489 │490 └─ lib/tortoise/connection/receiver.ex:163:16: Tortoise.Connection.Receiver.handle_event/4491492 warning: a struct for Tortoise.Handler is expected on struct update:493494 %Tortoise.Handler{handler | state: updated_state}495496 but got type:497498 dynamic()499500 where "handler" was given the type:501502 # type: dynamic()503 # from: lib/tortoise/handler.ex:412:44504 handler505506 when defining the variable "handler", you must also pattern match on "%Tortoise.Handler{}"507508 type warning found at:509 │510 413 │ {:ok, %__MODULE__{handler | state: updated_state}}511 │ ~512 │513 └─ lib/tortoise/handler.ex:413:11: Tortoise.Handler.handle_result/2514515 warning: a struct for Tortoise.Handler is expected on struct update:516517 %Tortoise.Handler{handler | state: updated_state}518519 but got type:520521 dynamic()522523 where "handler" was given the type:524525 # type: dynamic()526 # from: lib/tortoise/handler.ex:416:54527 handler528529 when defining the variable "handler", you must also pattern match on "%Tortoise.Handler{}"530531 type warning found at:532 │533 417 │ {{:ok, answer}, %__MODULE__{handler | state: updated_state}}534 │ ~535 │536 └─ lib/tortoise/handler.ex:417:21: Tortoise.Handler.handle_result/2537538 warning: a struct for Tortoise.Handler is expected on struct update:539540 %Tortoise.Handler{handler | state: updated_state}541542 but got type:543544 dynamic()545546 where "handler" was given the type:547548 # type: dynamic()549 # from: lib/tortoise/handler.ex:420:58550 handler551552 when defining the variable "handler", you must also pattern match on "%Tortoise.Handler{}"553554 type warning found at:555 │556 427 │ {:ok, %__MODULE__{handler | state: updated_state}}557 │ ~558 │559 └─ lib/tortoise/handler.ex:427:15: Tortoise.Handler.handle_result/2560561Generated tortoise app562==> scribe563Compiling 11 files (.ex)564Generated scribe app565==> instream566Compiling 37 files (.ex)567Generated instream app568==> quantum569Compiling 20 files (.ex)570 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead571 │572 8 │ @deps Application.get_env(:quantum, :date_library, Quantum.DateLibrary.Timex)573 │ ~574 │575 └─ lib/quantum/application.ex:8:21: Quantum.Application (module)576577 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead578 │579 77 │ Logger.warn(580 │ ~581 │582 └─ lib/quantum.ex:77:16: Quantum.remove_jobs_with_duplicate_names/2583584 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)585 │586 1 │ if Code.ensure_compiled?(Calendar.DateTime) do587 │ ~588 │589 └─ lib/quantum/date_library/calendar.ex:1:9590591 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead592 │593 13 │ @date_library Application.get_env(:quantum, :date_library, Quantum.DateLibrary.Timex)594 │ ~595 │596 └─ lib/quantum/date_library.ex:13:29: Quantum.DateLibrary (module)597598 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)599 │600 1 │ if Code.ensure_compiled?(Timex) do601 │ ~602 │603 └─ lib/quantum/date_library/timex.ex:1:9604605 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead606 │607 116 │ Logger.warn(608 │ ~609 │610 └─ lib/quantum/executor.ex:116:14: Quantum.Executor.check_node/3611612 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead613 │614 135 │ Logger.warn(fn ->615 │ ~616 │617 └─ lib/quantum/execution_broadcaster.ex:135:16: Quantum.ExecutionBroadcaster.add_job_to_state/2618619 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead620 │621 170 │ Logger.warn(fn ->622 │ ~623 │624 └─ lib/quantum/execution_broadcaster.ex:170:14: Quantum.ExecutionBroadcaster.get_next_execution_time/2625626Generated quantum app627fatal: not a git repository (or any parent up to mount point /)628Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).629warning: the :gettext compiler is no longer required in your mix.exs.630631Please find the following line in your mix.exs and remove the :gettext entry:632633 compilers: [..., :gettext, ...] ++ Mix.compilers(),634635 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/1636 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5637 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2638 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4639 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2640 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5641642fatal: not a git repository (or any parent up to mount point /)643Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).644==> helen645Compiling 64 files (.ex)646 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead647 │648 12 │ @log_opts get_env(:helen, Helen.Application, []) |> Keyword.get(:log, [])649 │ ~650 │651 └─ lib/application.ex:12:13: Helen.Application (module)652653 warning: unused require Logger654 │655 4 │ require Logger656 │ ~657 │658 └─ lib/common/config.ex:4:3659660 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead661 │662 136 │ Logger.warn(["handle_cast() unhandled:\n", inspect(catchall, pretty: true)])663 │ ~664 │665 └─ lib/agnus/day_info/server.ex:136:12: Agnus.DayInfo.handle_cast/2666667 warning: unused require Logger668 │669 4 │ require Logger670 │ ~671 │672 └─ lib/cli/reefwater.ex:4:3673674 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead675 │676 276 │ Logger.warn([677 │ ~678 │679 └─ lib/agnus/day_info/server.ex:276:12: Agnus.DayInfo.log_refresh_day_info/1680681 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead682 │683 54 │ Logger.warn(["ms(", inspect(unsupported), ") is not supported"])684 │ ~685 │686 └─ lib/common/time.ex:54:12: TimeSupport.ms/1687688 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead689 │690 72 │ Logger.warn([691 │ ~692 │693 └─ lib/dutycycle/supervisor.ex:72:16: Dutycycle.Supervisor.start_child/1694695 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead696 │697 84 │ Logger.warn(["start_child() bad args: ", inspect(catchall, pretty: true)])698 │ ~699 │700 └─ lib/dutycycle/supervisor.ex:84:14: Dutycycle.Supervisor.start_child/1701702 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead703 │704 12 │ database(Application.get_env(:helen, Fact.Influx) |> Keyword.get(:database))705 │ ~706 │707 └─ lib/fact/runtime_metric.ex:12:26: Fact.RunMetric (module)708709 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead710 │711 18 │ tag(:env, default: Application.get_env(:helen, :build_env, "dev"))712 │ ~713 │714 └─ lib/fact/runtime_metric.ex:18:36: Fact.RunMetric (module)715716 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead717 │718 11 │ series do719 │ ~~~~~~~~~720 │721 └─ lib/fact/runtime_metric.ex:11: Fact.RunMetric (module)722723 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead724 │725 11 │ series do726 │ ~~~~~~~~~727 │728 └─ lib/fact/runtime_metric.ex:11: Fact.RunMetric (module)729730 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead731 │732 9 │ @env Application.get_env(:helen, :build_env, "unknown")733 │ ~734 │735 └─ lib/fact/remote.ex:9:20: Fact.Remote (module)736737738== Compilation error in file lib/fact/runtime_metric.ex ==739** (FunctionClauseError) no function clause matching in Keyword.get/3 740 741 The following arguments were given to Keyword.get/3:742 743 # 1744 nil745 746 # 2747 :database748 749 # 3750 nil751 752 Attempted function clauses (showing 1 out of 1):753 754 def get(+keywords+, +key+, +default+) when -is_list(keywords)- and +is_atom(key)+755 756 (elixir 1.20.3) Keyword.get/3757 lib/fact/runtime_metric.ex:12: (module)758could not compile dependency :helen, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile helen --force", update it with "mix deps.update helen" or clean it with "mix deps.clean helen"