"no process" error for dependency only in release build (umbrella project)

I am currently building an umbrella project for the first time, and it is my second time using releases. I am using Tongue to generate language codes for text content.

When running my app using mix (both run and test) everything works as intended. But my first (release) deployment with Tongue crashes with a no process error:

stop) exited in: GenServer.call(Tongue.Detector, {:detect, "Arte rupestre nelle Alpi occidentali dalla Valle Po alla Valchiusella : mostra Torino, 6 novembre 1987 - 24 gennaio 1988."}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started

So far I had just added :tongue to the deps of one of my apps. I already bothered the libraries maintainer with this, but I am wondering if there are any aspects concerning the interaction between mix-release and umbrella projects I missed?

In your mix.exs in project/0 function make sure that releases: in applications: lists that application that has :tongue dependency.

And overall make sure that all umbrella apps that somehow depend on the dependency have that dependency in their deps/0 in mix.exs

1 Like

That did the trick, thanks. This is how the applications look like in my top level (umbrella) mix.exs:

def project do
    [
      apps_path: "apps",
      version: "0.2.0",
      start_permanent: Mix.env() == :prod,
      deps: deps(),
      releases: [
        api: [
          applications: [
            argos_api: :permanent
          ]
        ],
        aggregation: [
          applications: [
            argos_aggregation: :permanent,
            tongue: :permanent
          ]
        ]
      ],
      aliases: aliases()
    ]
  end