yhwbach
Error in CLI app: Could not start application tzdata: exited in: Tzdata.App.start(:normal, [])
I have an CLI app in an an application but anytime I want to run to it. I get an error from tzdata
ERROR! Could not start application tzdata: exited in: Tzdata.App.start(:normal, [])
** (EXIT) an exception was raised:
** (MatchError) no match of right hand side value: {:error, {:shutdown, {:failed_to_start_child, Tzdata.EtsHolder, {%File.Error{reason: :enotdir, path: "/home/daniel/personal/projects/blud/blud/tzdata/priv/release_ets", action: "list directory"}, [{File, :ls!, 1, [file: ~c"lib/file.ex", line: 1700]}, {Tzdata.EtsHolder, :release_files_for_dir, 1, [file: ~c"lib/tzdata/ets_holder.ex", line: 127]}, {Tzdata.EtsHolder, :make_sure_a_release_is_on_file, 0, [file: ~c"lib/tzdata/ets_holder.ex", line: 90]}, {Tzdata.EtsHolder, :init, 1, [file: ~c"lib/tzdata/ets_holder.ex", line: 16]}, {:gen_server, :init_it, 2, [file: ~c"gen_server.erl", line: 2057]}, {:gen_server, :init_it, 6, [file: ~c"gen_server.erl", line: 2012]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]}]}}}}
(tzdata 1.1.3) lib/tzdata/tzdata_app.ex:13: Tzdata.App.start/2
(kernel 10.0) application_master.erl:295: :application_master.start_it_old/4
Here are my dependencies:
defp deps do
[
{:req, "~> 0.5.0"},
{:timex, "~> 3.0"},
{:tzdata, "~> 1.1", override: true}
]
end
Note: I put override property to be true because I found a github issues stating that that would fix issue but it didn’t.
Looking at the error, I see the reason is a :enotdir error which is correct, the project is actually on /home/daniel/personal/projects/blud not /home/daniel/personal/projects/blud/blud/. I don’t know where tzdata pkg is getting that path from. Also looking at the docs for tzdata give no insight into solving this problem as I have tried almost all config stated in the docs. Though the application compiles normally and work when I try in iex but when I use the CLI built using escript that when the tzdata pops up.
Please does anyone know how to go about this? Thanks!!!
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #performance










First 2 of 2 Posts
ruslandoga
In my experience that error usually means
:tzdatacouldn’t create the directory to store or read the downloaded and processed tzdata due to e.g. permissions issues (:tzdata“ignores” the “real” error fromFile.mkdir_p/1here and then fails with a less descriptiveenoenterror inFile.ls!here). The path can be configured with something likein one of your
config/*.exsfiles.By default it’s
Application.app_dir(:tzdata, "priv")which seems to evaluate to/home/daniel/personal/projects/blud/blud/tzdata/privin your case.Ah, just saw your error is
:enotdirso it might be something else.yhwbach
Thanks @ruslandoga! Yeah this somewhat worked after hacking around (I had to move the ets release from tzdata in new folder in this project and reference it in the config data_dir with
~/personal/projects/blud/priv/tzdata). Though I got another error but I can move from there.