From 719ac1eb0ffc15d06f41b758515cf825ccbeb609 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 15 Feb 2026 17:16:48 -0600 Subject: [PATCH] Fix Mix.env() runtime crash in releases Capture Mix.env() at compile time via module attribute since Mix is not available at runtime in production releases. --- lib/snmpkit/snmp_lib/config.ex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/snmpkit/snmp_lib/config.ex b/lib/snmpkit/snmp_lib/config.ex index 5039b018..e4f947b3 100644 --- a/lib/snmpkit/snmp_lib/config.ex +++ b/lib/snmpkit/snmp_lib/config.ex @@ -441,6 +441,9 @@ defmodule SnmpKit.SnmpLib.Config do ## Private Implementation + # Capture Mix.env() at compile time since Mix is not available in releases + @compile_env if Code.ensure_loaded?(Mix), do: Mix.env(), else: :prod + # Environment detection with multiple fallbacks defp detect_environment(opts) do cond do @@ -448,8 +451,7 @@ defmodule SnmpKit.SnmpLib.Config do env = System.get_env("MIX_ENV") -> String.to_atom(env) env = System.get_env("SNMP_LIB_ENV") -> String.to_atom(env) env = Application.get_env(:snmp_lib, :environment) -> env - Code.ensure_loaded?(Mix) -> Mix.env() - true -> :dev + true -> @compile_env end end