title: Production Elixir Not Finding Existing Atoms
body: <p>I'm using a library that parses input into maps using already-existing keys (Poison). For whatever reason, in production, it thinks the keys don't exist, and I can't figure out why. I do have a few pieces of information that I'm hoping someone who isn't a rookie is willing to help me figure out what's going on: </p>
  
  <p>1:</p>
  
  <p>If I do an IEX session (iex -S mix), I can run :erlang.binary_to_existing_atom("first_name", :"utf8") without trouble.  But in production, instead I get</p>
  
  <pre><code>** (ArgumentError) argument error
    :erlang.binary_to_existing_atom("first_name", :utf8)
  </code></pre>
  
  <p>2: </p>
  
  <p>I can run <code>:first_name</code> immediately before <code>:erlang.binary_to_existing_atom</code> on production, and it works fine, since by then, the atom has been created. <strong>BUT</strong>, I can't run <code>:first_name</code> followed by the library's method: <code>Poison.Parser.parse!(~s(#{body}), keys: :atoms!)</code> as it throws the error, which I find to be strange.</p>
  
  <p>3:</p>
  
  <p>I'm using Heroku, not sure if that matters. The atoms are defined within an Ecto model, also not sure if that matters. Any help would be greatly appreciated - thanks in advance!</p>