Release assemble: did I skip a step?

I have a mix app (elixir-1.9.4) that works when called as:

iex -S mix

It performs queries to an oracle db. Results are fine.

When I assemble a release and start it with:

MIX_ENV=prod mix release
_build/prod/rel/stomp/bin/stomp start

I hit a conversion issue:

:error, %DBConnection.ConnectionError{message: "[{:xmerl_ucs, :from_utf16be, [...]

I believe it is connected to non-ascii chars in some records (if a record is ascii-only all is good).
My env actually includes a LANG entry (LANG=en_GB.UTF-8), but neither

LANG=en_GB.UTF-8 _build/dev/rel/stomp/bin/stomp start 

I am aware it’s all pritty vague and I didn’t write any configuration file. But maybe it’s just me who forgot something really basic when I assembled the release that you can spot easily,

thank you,


My gut reaction is that a library isn’t getting included. What’s your complete mix.exs file?

here you are:

defmodule Stomp.MixProject do
  use Mix.Project

  def project do
      app: :stomp,
      version: "0.1.0",
      elixir: "~> 1.9",
      start_permanent: Mix.env() == :prod,
      deps: deps()

  # Run "mix help" to learn about applications.
  def application do
      extra_applications: [:logger],
      mod: {Stomp, []}

  # Run "mix help deps" to learn about dependencies.
  defp deps do
      {:stomp_client, "~> 0.1.1"},
      # {:stomp_client, git: ""},
      {:httpoison, "~> 1.5"},
      {:goth, "~> 1.1.0"},
      {:poison, "~> 3.0"},
      {:json, "~> 1.2"},
      {:jamdb_oracle, "~> 0.3.5"},
      # {:jamdb_oracle,
      # git: "",
      # ref: "0afe407908dd2f3425fbdf330759a5881d98086b"},
      {:poolboy, "~> 1.5"}

thank you so much for reading,

Hmm, what if you changed this to be:

    extra_applications: [:logger, :xmerl],
1 Like

Brilliant: it was it. Now it works!

thank you so much,