
Fl4m3Ph03n1x
Cannot launch Elixir Desktop app when MIX_ENV=test
Background
I have Phoenix umbrella application. When inside said application, I can run it without issues if MIX_ENV=prod
. However, if I do mix test
while MIX_ENV=dev
, I get an error.
Problem
The error I have is as follows:
18:39:42.101 [error] ** wx object server {:local, WebInterface} terminating
** Last message in was {:"$gen_cast", {:show, &WebInterface.Endpoint.url/0}}
** When Server state == %Desktop.Window{
module: nil,
taskbar: nil,
frame: {:wx_ref, 35, :wxFrame, []},
notifications: %{},
webview: {:wx_ref, 49, :wxWebView, []},
home_url: &WebInterface.Endpoint.url/0,
last_url: nil,
title: "Market Manager",
rebuild: 0,
rebuild_timer: {:interval, #Reference<0.2679771817.2635857922.255366>}
}
** Reason for termination ==
** {:badarg,
[
{:erlang, :binary_to_existing_atom,
["Elixir.WebInterface.Endpoint.HTTP", :utf8],
[error_info: %{module: :erl_erts_errors}]},
{:elixir_aliases, :safe_concat, 1,
[file: ~c"src/elixir_aliases.erl", line: 139]},
{WebInterface.Endpoint, :url, 0,
[file: ~c"lib/web_interface/endpoint.ex", line: 4]},
{Desktop.Window, :prepare_url, 1,
[file: ~c"lib/desktop/window.ex", line: 666]},
{Desktop.Window, :handle_cast, 2,
[file: ~c"lib/desktop/window.ex", line: 604]},
{:wx_object, :handle_msg, 5, [file: ~c"wx_object.erl", line: 493]},
{:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 241]}
]}
Reading this, I understand the problem comes from my application.ex
, namely:
@impl true
def start(_type, _args) do
children = [
Telemetry,
{Phoenix.PubSub, name: PubSub},
Endpoint,
Manager,
%{
id: Desktop.Window,
start:
{Desktop.Window, :start_link,
[
[
app: :web_interface,
id: WebInterface,
title: "Market Manager",
size: WindowUtils.calculate_window_size(0.6, 0.8),
menubar: MenuBar,
icon: "static/images/resized_logo_5_32x32.png",
url: &WebInterface.Endpoint.url/0 # This line seems to be a problem
]
]},
restart: :transient,
shutdown: 5_000
}
]
opts = [strategy: :one_for_one, name: WebInterface.Supervisor]
Supervisor.start_link(children, opts)
end
After reading more on the subject I changed my config/test.exs
to this:
import Config
config :web_interface, WebInterface.Endpoint,
http: [ip: {127, 0, 0, 1}, port: 4002],
secret_key_base: "some_key",
server: true,
check_origin: false
But this still does not fix the issue.
In contrast, this is my config/prod.exs
:
config :web_interface, WebInterface.Endpoint,
http: [ip: {127, 0, 0, 1}, port: 80],
cache_static_manifest: "priv/static/cache_manifest.json",
secret_key_base: "some_key",
check_origin: false,
server: true
But the issue still occurs.
Questions
- Why am I having this issue?
- How can I fix it?
Marked As Solved

Fl4m3Ph03n1x
Answer
Turns out that in a previous launch of the application, wxWidgets (the process) had exited in a bad state. Perhaps it crashed or something else happened, but what matters here is that trying to restart it was impossible.
I had to restart my machine to start everything in a new clean state.
I also deleted the _build
folder to be sure.
This solved the issue.
Popular Frontend topics










Other popular topics










Latest in Frontend
Latest (all)
Categories:
Popular Portals
- /elixir
- /opensuse
- /rust
- /kotlin
- /ruby
- /erlang
- /python
- /clojure
- /react
- /quarkus
- /go
- /vapor
- /react-native
- /v
- /wasm
- /django
- /security
- /nodejs
- /centos
- /rails
- /haskell
- /fable
- /gleam
- /js
- /swift
- /deno
- /tailwind
- /assemblyscript
- /laravel
- /symfony
- /phoenix
- /crystal
- /typescript
- /debian
- /adonisjs
- /julia
- /arch-linux
- /svelte
- /spring
- /c-plus-plus
- /preact
- /flutter
- /actix
- /java
- /angular
- /ocaml
- /zig
- /scala
- /kubuntu
- /zotonic
- /vim
- /rocky
- /lisp
- /keyboards
- /html
- /emacs
- /vuejs
- /nim
- /elm
- /nerves