
Fl4m3Ph03n1x
Changing endpoint.ex to “use Desktop.Endpoint” breaks Desktop app
Background
I have created a fresh Phoenix app using mix phx.new.web web_interface --no-dashboard --no-ecto --no-gettext --no-mailer
inside an Umbrella app.
After following the basic installation instructions for the dependencies and changing my application.ex
to:
defmodule WebInterface.Application do
use Application
alias Desktop
alias WebInterface.{Endpoint, Telemetry, PubSub}
alias WebInterface.Live.MenuBar
@impl true
def start(_type, _args) do
children = [
Telemetry,
{Phoenix.PubSub, name: PubSub},
Endpoint,
{Desktop.Window,
[
app: :web_interface,
id: WebInterface,
title: "Market Manager",
size: {940, 980},
menubar: MenuBar,
icon: "static/images/resized_logo_5_32x32.png",
url: &WebInterface.Endpoint.url/0
]}
]
opts = [strategy: :one_for_one, name: WebInterface.Supervisor]
Supervisor.start_link(children, opts)
end
# boilerplate code bellow
end
I was able to launch my Desktop application and have it working.
Problem
However, after changing endpoint.ex
following the instruction #3 here:
I was no longer able to launch the application due to an error:
08:30:14.411 [notice] Application runtime_tools exited: :stopped
** (Mix) Could not start application web_interface: WebInterface.Application.start(:normal, []) returned an error: shutdown: failed to start child: WebInterface.Endpoint
** (EXIT) an exception was raised:
** (UndefinedFunctionError) function Phoenix.Endpoint.Supervisor.url/1 is undefined or private
(phoenix 1.7.2) Phoenix.Endpoint.Supervisor.url(WebInterface.Endpoint)
(phoenix 1.7.2) lib/phoenix/config.ex:65: Phoenix.Config.cache/3
(web_interface 2.2.0) lib/web_interface/endpoint.ex:2: WebInterface.Endpoint.url/0
(phoenix 1.7.2) lib/phoenix/endpoint/supervisor.ex:425: Phoenix.Endpoint.Supervisor.log_access_url/2
(phoenix 1.7.2) lib/phoenix/endpoint/supervisor.ex:17: Phoenix.Endpoint.Supervisor.start_link/3
(stdlib 4.1.1) supervisor.erl:414: :supervisor.do_start_child_i/3
(stdlib 4.1.1) supervisor.erl:400: :supervisor.do_start_child/2
(stdlib 4.1.1) supervisor.erl:384: anonymous fn/3 in :supervisor.start_children/2
To me, this indicates that changing Phoenix.Endpoint
to Desktop.Endpoint
is no longer necessary.
Question
- Is the documentation outdated?
- If not, am I missing something? Given that before the change the application worked, what could be causing the issue (assuming the change is indeed necessary)?
It is worth noting however, that the creation of Phoenix projects inside Umbrella applications is currently bugged (see: Phoenix 1.7 welcome page assets not showing properly - Questions / Help - Elixir Programming Language Forum) but I don’t think this is related.
Marked As Solved

Fl4m3Ph03n1x
So, after delving into the source code, I am of the opinion the documentation (desktop/guides/your_first_app.md at main · elixir-desktop/desktop · GitHub) needs to be updated, specifically:
def deps do
[
{:desktop, "~> 1.4"}
]
end
Needs to be:
def deps do
[
{:desktop, "~> 1.5"}
]
end
As v1.4 breaks with Phoenix LiveView 1.18. More info:
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
- /v
- /react-native
- /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
- /kubuntu
- /scala
- /zotonic
- /vim
- /rocky
- /lisp
- /html
- /keyboards
- /nim
- /emacs
- /vuejs
- /elm
- /nerves