Crash loop with "* 1st argument: invalid port name" after restoring from backup

Not sure what the issue was but while trying to fix the potential git issue I managed to kill my setup.
Unfortunately now even my backup is giving me trouble.
When starting the setup restored from my backup, the Akkoma app is crashing in a loop with the “invalid port name” error below:

akkoma-app  | -- Waiting for database...
akkoma-app  | akkoma-db:5432 - accepting connections
akkoma-app  | -- Running migrations...
akkoma-app  | 
akkoma-app  | 11:55:49.974 [info] Migrations already up
akkoma-app  | -- Starting!
akkoma-app  | 
akkoma-app  | 11:55:51.043 [error] Error during FastHtml.Pool.init_worker/1 callback:
akkoma-app  | ** (ErlangError) Erlang error: :enoent:
akkoma-app  | 
akkoma-app  |   * 1st argument: invalid port name
akkoma-app  | 
akkoma-app  |     :erlang.open_port({:spawn_executable, "/opt/akkoma/_build/prod/lib/fast_html/priv/fasthtml_worker"}, [:binary, {:packet, 4}, :use_stdio, :exit_status])
akkoma-app  |     (fast_html 2.2.0) lib/fast_html/pool.ex:81: FastHtml.Pool.init_worker/1
akkoma-app  |     (nimble_pool 1.0.0) lib/nimble_pool.ex:932: NimblePool.do_apply_worker_callback/4
akkoma-app  |     (nimble_pool 1.0.0) lib/nimble_pool.ex:891: NimblePool.init_worker/5
akkoma-app  |     (elixir 1.15.4) lib/enum.ex:4379: Enum.reduce/3
akkoma-app  |     (nimble_pool 1.0.0) lib/nimble_pool.ex:426: NimblePool.init/1
akkoma-app  |     (stdlib 5.0.2) gen_server.erl:962: :gen_server.init_it/2
akkoma-app  |     (stdlib 5.0.2) gen_server.erl:917: :gen_server.init_it/6
akkoma-app  |
akkoma-app  | Kernel pid terminated (application_controller) ({application_start_failure,tzdata,{bad_return,{{'Elixir.Tzdata.App',start,[normal,[]]},{'EXIT',{{badmatch,{error,{shutdown,{failed_to_start_child,'Elixir.Tzdata.EtsHolder',{function_clause,[{'Elixir.String',replace,[nil,<<".v2.ets">>,<<>>,[]],[{file,"lib/string.ex"},{line,1520}]},{'Elixir.Tzdata.EtsHolder',load_release,0,[{file,"lib/tzdata/ets_holder.ex"},{line,55}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,962}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,917}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]}}}}},[{'Elixir.Tzdata.App',start,2,[{file,"lib/tzdata/tzdata_app.ex"},{line,13}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,293}]}]}}}}})
akkoma-app  | 
akkoma-app  | Crash dump is being written to: erl_crash.dump...done

Now, due to me being totaly ignorant in regards to elixir there is very little I can take from this, is the “invalid port” likely to be related to IP port, 4001?
My docker-compose.yml has got the default "127.0.0.1:4001:4001" setting and it’s been running with this setup ever since I migrated from Pleroma,
Are there other places in the git/docker setup where ports get defined which for some strange reason may have gotten out of sync?

I also ran the below again just in case:

sudo ./docker-resources/manage.sh mix deps.get
sudo ./docker-resources/manage.sh mix compile

I am running out of ideas…

it is not related to network ports, and erlang ports are for external communications, in this case, with an executable

and it looks like you’ve got a bad compilation - your fasthtml_worker binary does not exist

delete your _build folder and try again

do not do anything else

1 Like

Wow, worked right away, thanks a bunch for your prompt help.
I saw that it went through compiling stuff, isn’t this what mix compile should do as well?

I need to take a deep breath now and let this sit on the old release for a while until I feel brave enough to attempt the update again :slight_smile:
But now I know that the backup is working I can approach this a bit more relaxed.

mix compile will try and recompile any thing, but not-updated-since-last-time-it-was-run dependencies usually won’t be recompiled - by purging the _build folder you essentially force it to

this library in particular has some C (lang) components, so needs an external compiler to mix itself

1 Like

Great, I’ll keep this in mind as a simple troubleshooting step.