Getting Observer working on Erlang/OTP 28
2025-10-27
On my Mac, Observer does not work out of the box with Erlang/OTP 28, but I got it working.
Background
If you're not familiar, Erlang/OTP is a parallel, functional language and runtime for building concurrent systems. I use it with the Elixir programming language.
It includes a variety of observability and debugging tools, among them Observer, which is a graphical system viewer that exposes the internals of your running application. It is like Java's jconsole.
It looks like this:

Getting Observer working
Observer uses the wxwidgets GUI library. Erlang 28 does not appear to be compatible with wx version 3.3. In order to get it working, I had to build Erlang 28 against the previous version of wx, which is version 3.2, like this:
# I use a Mac. This is probably different on Linux.
# Install the previous version of wx
$ brew install wxwidgets@3.2
# Confirm its config is available.
# This should return something like /opt/homebrew/bin/wx-config-3.2
$ which wx-config-3.2
# Install Erlang 28, telling it which wx to use.
# I use `asdf`, but this should work similarly with other installers.
$ KERL_CONFIGURE_OPTIONS="--enable-wx --with-wx-config=`which wx-config-3.2`" asdf install erlang 28.1.1
# Confirm that observer was installed and works correctly by running it from `iex`.
$ iex
iex(1)> :observer.start()