Esbuild install failing after updating elixir from 1.14.5 to 1.15.7

mix esbuild.install task is failing after updating project’s elixir version from 1.14.5 to 1.15.7.

#14 107.7 Generated mail app
#14 107.7 ==> bamboo_ses
#14 107.7 Compiling 5 files (.ex)
#14 107.8 Generated bamboo_ses app
#14 107.9 ==> phoenix_ecto
#14 107.9 Compiling 7 files (.ex)
#14 108.0 Generated phoenix_ecto app
#14 108.0 ** (ArgumentError) unknown application: :castore
#14 108.0     (elixir 1.15.7) lib/application.ex:1010: Application.app_dir/1
#14 108.0     (elixir 1.15.7) lib/application.ex:1037: Application.app_dir/2
#14 108.0     (esbuild 0.3.4) lib/esbuild.ex:262: Esbuild.fetch_body!/1
#14 108.0     (esbuild 0.3.4) lib/esbuild.ex:200: Esbuild.install/0
#14 108.0     (mix 1.15.7) lib/mix/task.ex:455: anonymous fn/3 in Mix.Task.run_task/5
#14 108.0     (elixir 1.15.7) lib/enum.ex:984: Enum."-each/2-lists^foreach/1-0-"/2
#14 108.0     (mix 1.15.7) lib/mix/task.ex:455: anonymous fn/3 in Mix.Task.run_task/5
#14 108.0     (mix 1.15.7) lib/mix/cli.ex:92: Mix.CLI.run_task/2
------
executor failed running [/bin/sh -c mix do deps.get, deps.compile, esbuild.install]: exit code: 1

Do you have the castore dependency in your mix.exs?

Also, have you done the mandatory rm -rf _build deps and mix do deps.get, compile after any Erlang or Elixir version change?

The application in containerized, this error is ocurring while building the image, I already ran clean builds a couple times, same error.
In elixir 1.14.5 I did not have castore declared, I tested declaring it in mix.exs and still failing.
Also updated esbuild dependency and no progress

#14 112.7
#14 112.9 Generated mail app
#14 112.9 ==> bamboo_ses
#14 112.9 Compiling 5 files (.ex)
#14 113.0 Generated bamboo_ses app
#14 113.0 ==> phoenix_ecto
#14 113.0 Compiling 7 files (.ex)
#14 113.2 Generated phoenix_ecto app
#14 113.2 ** (ArgumentError) unknown application: :castore
#14 113.2     (elixir 1.15.7) lib/application.ex:1010: Application.app_dir/1
#14 113.2     (elixir 1.15.7) lib/application.ex:1037: Application.app_dir/2
#14 113.2     (esbuild 0.7.1) lib/esbuild.ex:337: Esbuild.fetch_body!/1
#14 113.2     (esbuild 0.7.1) lib/esbuild.ex:235: Esbuild.install/0
#14 113.2     (mix 1.15.7) lib/mix/task.ex:455: anonymous fn/3 in Mix.Task.run_task/5
#14 113.2     (elixir 1.15.7) lib/enum.ex:984: Enum."-each/2-lists^foreach/1-0-"/2
#14 113.2     (mix 1.15.7) lib/mix/task.ex:455: anonymous fn/3 in Mix.Task.run_task/5
#14 113.2     (mix 1.15.7) lib/mix/cli.ex:92: Mix.CLI.run_task/2

This is the logs
elixir: 1.15.7
erlang: 25.3.2.7
esbuild: 0.7.1

Yikes. No experience with such a problem, sorry.

The only good advice I can give you is to try to gradually increase Elixir version from the old one you had – one patch version at a time – and see where the error manifests.

Can you please post your mix.exs file?

We faced similar issues while upgrading to latest Elixir/OTP.

  • Can you post the output of cat mix.lock | grep castore
  • Make sure to update tailwind as well.
  • Have you installed ca-certificates in your docker image?
1 Like
defmodule Banking.MixProject do
  use Mix.Project

  def project do
    [
      app: :banking,
      version: version(),
      elixir: "~> 1.11",
      elixirc_paths: elixirc_paths(Mix.env()),
      start_permanent: Mix.env() == :prod,
      aliases: aliases(),
      deps: deps(),
      dialyzer: [
        plt_add_apps: [
          :fun_with_flags,
          :fun_with_flags_ui,
          :mix,
          :wallaby
        ],
        list_unused_filters: true
      ],
      test_coverage: [tool: ExCoveralls],
      preferred_cli_env: [
        coveralls: :test,
        "coveralls.detail": :test,
        "coveralls.html": :test,
        "coveralls.xml": :test
      ],
      releases: [
        banking: [
          include_executables_for: [:unix],
          applications: [
            runtime_tools: :permanent,
            fun_with_flags: :load,
            fun_with_flags_ui: :load
          ]
        ]
      ],
      elixirc_options: [warnings_as_errors: true],
      # Docs
      name: "Banking",
      # The main page in the docs
      docs: docs(),
      xref: [exclude: [Oban.Pro.Workers.Chain]]
    ]
  end

  # Configuration for the OTP application.
  #
  # Type `mix help compile.app` for more information.
  def application do
    [
      mod: {Bank.Application, []},
      extra_applications: [
        :logger,
        :runtime_tools,
        :bamboo,
        :ex_aws,
        :os_mon
      ]
    ]
  end

  # Specifies which paths to compile per environment.
  defp elixirc_paths(:test), do: ["lib", "test/support", "test/factories"]
  defp elixirc_paths(_), do: ["lib"]

  # Specifies your project dependencies.
  #
  # Type `mix help deps` for examples and options.
  defp deps do
    [
      {:libcluster, "~> 3.3"},
      {:argon2_elixir, "~> 3.1"},
      {:phoenix, "~> 1.7.0"},
      {:phoenix_ecto, "~> 4.1"},
      {:ecto_sql, "~> 3.9.0"},
      {:castore, "~> 0.1"},
      {:postgrex, ">= 0.0.0"},
      {:phoenix_live_view, "~> 0.19.5"},
      {:floki, ">= 0.34.0", only: :test},
      {:phoenix_html, "~> 3.0"},
      {:phoenix_view, "~> 2.0"},
      {:phoenix_live_reload, "~> 1.2", only: :dev},
      {:phoenix_live_dashboard, "~> 0.8.1"},
      ## Telemetry
      {:telemetry_metrics, "~> 0.6"},
      {:telemetry_poller, "~> 1.0"},
      {:telemetry_metrics_appsignal, "~> 1.0"},
      {:prom_ex, "~> 1.9"},
      ##
      {:gettext, "~> 0.11"},
      {:jason, "~> 1.0"},
      {:timex, "~> 3.0"},
      {:plug_cowboy, "~> 2.6"},
      {:mox, "~> 1.0", only: :test},
      {:excoveralls, "~> 0.10", only: :test},
      {:mix_test_interactive, "~> 1.0", only: :test, runtime: false},
      {:ex_unit_notifier, "~> 1.2", only: :test},
      {:one_time_pass_ecto, "~> 1.0"},
      {:fsmx, "~> 0.4.0"},
      {:cowboy, "~> 2.10.0"},
      {:tesla, "~> 1.7.0"},
      # optional, but recommended adapter
      {:hackney, "~> 1.17"},
      {:ex_money, "~> 5.6"},
      {:ex_money_sql, "~> 1.0"},
      {:ex_cldr_dates_times, "~> 2.0"},
      {:oban, "~> 2.16.0"},
      {:oban_pro, "~> 1.0", repo: "oban"},
      {:oban_web, "~> 2.9", repo: "oban"},
      {:bamboo, "~> 2.3.0"},
      {:bamboo_ses, "~> 0.3.0", github: "..."},
      {:configparser_ex, "~> 4.0"},
      {:cors_plug, "~> 3.0"},
      {:mimic, "~> 1.4", only: :test},
      # Static code analyzers
      {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false},
      {:credo, "~> 1.5", only: [:dev, :test], runtime: false},
      {:fun_with_flags, "~> 1.10.0", runtime: false},
      {:fun_with_flags_ui, "~> 0.8.1", runtime: false},
      {:tzdata, "~> 1.1"},
      {:erlport, "~> 0.11.0"},
      {:poolboy, "~> 1.5"},
      {:ex_aws_s3, "~> 2.0"},
      {:ex_aws_secretsmanager, "~> 2.0"},
      {:sweet_xml, "~> 0.7.1"},
      {:sftp_client, "~> 1.4"},
      {:ex_machina, "~> 2.7.0", only: :test},
      {:xmap, "~> 0.2"},
      {:xml_builder, "~> 2.1"},
      {:typed_struct, "~> 0.3.0"},
      {:circular_buffer, "~> 0.4.0"},
      {:fuse, "~> 2.4"},
      {:stripity_stripe, github: "..."},
      {:bypass, "~> 2.1", only: :test},
      {:wallaby, "~> 0.30.0", runtime: false, only: :test},
      {:junit_formatter, "~> 3.1", only: [:test]},
      # Monitoring
      {:appsignal, "~> 2.6"},
      {:appsignal_phoenix, "~> 2.3.0"},
      {:ecto_psql_extras, "~> 0.7"},
      # AWS KMS
      {:ex_aws, "~> 2.1"},
      {:ex_aws_kms, "~> 2.1"},
      {:cloak, "1.1.2"},
      # Cache
      {:nebulex, "~> 2.5"},
      {:jchash, "~> 0.1.1"},
      {:horde, "~> 0.8.0"},
      {:redix, "~> 1.2"},
      {:esbuild, "~> 0.2", runtime: Mix.env() == :dev},
      {:surface, "~> 0.11.0"},
      {:scrivener_ecto, "~> 2.7.0"},
      {:base62_uuid, "~> 3.0"},
      # Authentication with Google + Guardian
      {:ueberauth_google, "~> 0.10"},
      {:guardian, "~> 2.0"},
      # Ex Docs to generate documentation
      {:ex_doc, "~> 0.27", only: [:dev, :test], runtime: false},
      # CSV
      {:csv, "~> 3.0"},
      {:elixlsx, "~> 0.5.1"},
      {:xlsx_reader, "~> 0.6.0"},
      # Phone_number validation
      {:ex_phone_number,
       git: "https://github.com/socialpaymentsbv/ex_phone_number",
       commit: "373ee6d93d073c3e4783b47006b0f6b910a95f69"},
      # API documentation
      {:open_api_spex, "~> 3.17"},
      # Deep map iterations
      {:iteraptor, "~> 1.13"},
      # Event system
      {:broadway, "~> 1.0"},
      {:broadway_kafka, "~> 0.4"},
      {:stream_data, "~> 0.5", only: :test},
      {:posthog, "~> 0.1"},
      {:wax_, "~> 0.6.2"}
    ]
  end

  # Aliases are shortcuts or tasks specific to the current project.
  # For example, to install project dependencies and perform other setup tasks, run:
  #
  #     $ mix setup
  #
  # See the documentation for `Mix` for more info on aliases.
  defp aliases do
    [
      setup: ["deps.get", "ecto.setup", "cmd npm install --prefix assets/banking"],
      "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
      "ecto.reset": ["ecto.drop", "ecto.setup"],
      test: ["ecto.create --quiet", "ecto.migrate --quiet", "test --warnings-as-errors"],
      "assets.compile": &compile_assets/1,
      "back_office.compile_styles": &compile_back_office_styles/1,
      "back_office.compile_assets": ["back_office.compile_styles", "esbuild back_office"]
    ]
  end

  # Recompile assets after any change is done
  defp compile_assets(_) do
    npm_script = if Mix.env() == :prod, do: "deploy", else: "build"

    Mix.shell().cmd(
      "cd assets/bank && npm run #{npm_script} && node build.js --deploy",
      quiet: false
    )
  end

  defp docs do
    [
      main: "Banking",
      logo: "priv/static/banking/images/logos/banking_logos/light_full_logo.svg",
      extras: ["README.md"],
      groups_for_modules: [
        # Banking.Contexts
        BackOffice: [
          ~r/BackOffice.*/
        ],
        BackOfficeWeb: [
          ~r/BackOfficeWeb.*/
        ],
        Contexts: [
          ~r/Banking\.Contexts.*/
        ],
        Events: [
          ~r/Banking\.Events.*/
        ],
        Notifications: [
          ~r/Banking\.Notifications.*/
        ],
        Services: [
          ~r/Banking\.Services.*/
        ],
        Utils: [
          ~r/Banking\.Utils.*/
        ],
        Workers: [
          ~r/Banking\.Workers.*/
        ],
        Banking: [
          ~r/Banking.*/
        ],
        BankingWeb: [
          ~r/BankingWeb.*/
        ],
        BankingAPI: [
          ~r/BankingAPI.*/
        ],
        Primitivo: [
          ~r/Primitivo.*/
        ]
      ],
      nest_modules_by_prefix: [
        BackOffice,
        BackOfficeWeb,
        Banking,
        BankingAPI,
        BankingWeb,
        Banking.Contexts,
        Banking.Contexts.BankAccounts,
        Banking.Contexts.BankTransfers,
        Banking.Contexts.Clients,
        Banking.Contexts.Configuration,
        Banking.Contexts.Deposits,
        Banking.Contexts.IdentityValidations,
        Banking.Contexts.KYCLogs,
        Banking.Contexts.Payments,
        Banking.Contexts.Persons,
        Banking.Contexts.ServiceLogs,
        Banking.Contexts.Transactions,
        Banking.Contexts.Transfers,
        Banking.Contexts.TwoFactorAuth,
        Banking.Contexts.Users,
        Banking.Contexts.WebhookLogs,
        Banking.Events,
        Banking.Notifications,
        Banking.Services,
        Banking.Utils,
        Banking.Workers,
        Primitivo
      ],
      skip_undefined_reference_warnings_on: [
        "Banking.Cldr",
        "Banking.Cldr.Date",
        "Banking.Cldr.Date.Interval",
        "Banking.Cldr.DateTime",
        "Banking.Cldr.DateTime.Interval",
        "Banking.Cldr.Interval",
        "Banking.Cldr.Time",
        "Banking.Cldr.Time.Interval"
      ]
    ]
  end

  def compile_back_office_styles(_args) do
    npm_script = if Mix.env() == :prod, do: "deploy", else: "build"
    Mix.shell().cmd("npm run #{npm_script} --prefix assets/back_office/", quiet: false)
  end

  def version do
    hash = String.trim(System.get_env("CI_COMMIT_HASH", "0000000H"))
    date = String.trim(System.get_env("CI_COMMIT_DATE", "0000000Z"))
    release_version = String.trim(System.get_env("CI_RELEASE_VERSION", "0.0.0"))

    "#{release_version}+#{hash}-#{date}"
  end
end
  • cat mix.lock | grep caster
 "castore": {:hex, :castore, "0.1.22", "4127549e411bedd012ca3a308dede574f43819fe9394254ca55ab4895abfa1a2", [:mix], [], "hexpm", "c17576df47eb5aa1ee40cc4134316a99f5cad3e215d5c77b8dd3cfef12a22cac"},
  "cldr_utils": {:hex, :cldr_utils, "2.22.0", "5df60df2603dfeeffe26e40ab1ee565df34da288a53bb2db0d0dbd243fd646ef", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "ea14e8a6aa89ffd59a5d49baebe7ebf852cc024ac50dc2b3dabcd3786eeed657"},
  "elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"},
  "esbuild": {:hex, :esbuild, "0.7.1", "fa0947e8c3c3c2f86c9bf7e791a0a385007ccd42b86885e8e893bdb6631f5169", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "66661cdf70b1378ee4dc16573fcee67750b59761b2605a0207c267ab9d19f13c"},
  "ex_money": {:hex, :ex_money, "5.12.1", "5d993d9d83ad4b0cfb2d68429df86b6f8883ca34926d642c82b034b0218dcdaa", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.27", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.0 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "cba0f447a332a351128ead6f48a8d75130e4f0625373bb3888ded26887b95d71"},
  "finch": {:hex, :finch, "0.16.0", "40733f02c89f94a112518071c0a91fe86069560f5dbdb39f9150042f44dcfb1a", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f660174c4d519e5fec629016054d60edd822cdfe2b7270836739ac2f97735ec5"},
  "mint": {:hex, :mint, "1.5.1", "8db5239e56738552d85af398798c80648db0e90f343c8469f6c6d8898944fb6f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "4a63e1e76a7c3956abd2c72f370a0d0aecddc3976dea5c27eccbecfa5e7d5b1e"},
  "octo_fetch": {:hex, :octo_fetch, "0.3.0", "89ff501d2ac0448556ff1931634a538fe6d6cd358ba827ce1747e6a42a46efbf", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "c07e44f2214ab153743b7b3182f380798d0b294b1f283811c1e30cff64096d3d"},
  "phoenix": {:hex, :phoenix, "1.7.9", "9a2b873e2cb3955efdd18ad050f1818af097fa3f5fc3a6aaba666da36bdd3f02", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "83e32da028272b4bfd076c61a964e6d2b9d988378df2f1276a0ed21b13b5e997"},
  "redix": {:hex, :redix, "1.2.3", "3036e7c6080c42e1bbaa9168d1e28e367b01e8960a640a899b8ef8067273cb5e", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:nimble_options, "~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "14e2bca8a03fad297a78a3d201032df260ee5f0e0ef9c173c0f9ca5b3e0331b7"},
  "tesla": {:hex, :tesla, "1.7.0", "a62dda2f80d4f8a925eb7b8c5b78c461e0eb996672719fe1a63b26321a5f8b4e", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.13", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:msgpax, "~> 2.3", [hex: :msgpax, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "2e64f01ebfdb026209b47bc651a0e65203fcff4ae79c11efb73c4852b00dc313"}
  • ca-certificates is installed in my docker image
  • tailwindcss version is 3.3.3

Can you try to update castore to 1.0?

"castore": {:hex, :castore, "1.0.4", "ff4d0fb2e6411c0479b1d965a814ea6d00e51eb2f58697446e9c41a97d940b28", [:mix], [], "hexpm", "9418c1b8144e11656f0be99943db4caf04612e3eaecefb5dae9a2a87565584f8"},
  "cldr_utils": {:hex, :cldr_utils, "2.24.2", "364fa30be55d328e704629568d431eb74cd2f085752b27f8025520b566352859", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "3362b838836a9f0fa309de09a7127e36e67310e797d556db92f71b548832c7cf"},
  "elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"},
  "esbuild": {:hex, :esbuild, "0.7.1", "fa0947e8c3c3c2f86c9bf7e791a0a385007ccd42b86885e8e893bdb6631f5169", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "66661cdf70b1378ee4dc16573fcee67750b59761b2605a0207c267ab9d19f13c"},
  "finch": {:hex, :finch, "0.16.0", "40733f02c89f94a112518071c0a91fe86069560f5dbdb39f9150042f44dcfb1a", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f660174c4d519e5fec629016054d60edd822cdfe2b7270836739ac2f97735ec5"},
  "mint": {:hex, :mint, "1.5.1", "8db5239e56738552d85af398798c80648db0e90f343c8469f6c6d8898944fb6f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "4a63e1e76a7c3956abd2c72f370a0d0aecddc3976dea5c27eccbecfa5e7d5b1e"},
  "octo_fetch": {:hex, :octo_fetch, "0.3.0", "89ff501d2ac0448556ff1931634a538fe6d6cd358ba827ce1747e6a42a46efbf", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "c07e44f2214ab153743b7b3182f380798d0b294b1f283811c1e30cff64096d3d"},
  "phoenix": {:hex, :phoenix, "1.7.9", "9a2b873e2cb3955efdd18ad050f1818af097fa3f5fc3a6aaba666da36bdd3f02", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "83e32da028272b4bfd076c61a964e6d2b9d988378df2f1276a0ed21b13b5e997"},
  "redix": {:hex, :redix, "1.2.3", "3036e7c6080c42e1bbaa9168d1e28e367b01e8960a640a899b8ef8067273cb5e", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:nimble_options, "~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "14e2bca8a03fad297a78a3d201032df260ee5f0e0ef9c173c0f9ca5b3e0331b7"},
  "tesla": {:hex, :tesla, "1.7.0", "a62dda2f80d4f8a925eb7b8c5b78c461e0eb996672719fe1a63b26321a5f8b4e", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.13", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:msgpax, "~> 2.3", [hex: :msgpax, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "2e64f01ebfdb026209b47bc651a0e65203fcff4ae79c11efb73c4852b00dc313"},

Still failing

Very weird indeed. Both esbuild 0.7.1 and 0.3.4 depend on castore: https://github.com/phoenixframework/esbuild/blob/v0.3.4/mix.exs#L45 - and I cannot reproduce the failure locally with a reduced version of the mix.exs.

@renatovalim can you perhaps try reproducing it? Does it happen for you even with Mix.install [:esbuild] on IEx?

1 Like

This recommendation lead me to a debugging process inside the image building and I found something.

In my Dockerfile, I run the command mix do deps.get, deps.compile, esbuild.install all together, it always worked. But after updating the Elixir version this fails, but separating getting and compiling the dependencies from esbuild.install make it works.

RUN mix do deps.get, deps.compile, esbuild.install # THIS FAILS
###
RUN mix do deps.get, deps.compile
RUN mix esbuild.install # THIS WORKS

It seems to me that some change in Mix could be causing this behaviour, but it is just a guess, do you have any consideration about it?

Anyways, for now this change is enough for me so thank you very much for helping!

1 Like

This was reported but it should have been fixed on v1.15.6. I will try to reproduce it locally, thank you! Glad you are unstuck!

3 Likes

It was actually fixed in esbuild but there was no new version. A new one has been published.

2 Likes

Great, already updated here, it is fixed, thank you!

1 Like