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!!!
Marked As Solved
ruslandoga
![]()
In my experience that error usually means :tzdata couldn’t create the directory to store or read the downloaded and processed tzdata due to e.g. permissions issues (:tzdata “ignores” the “real” error from File.mkdir_p/1 here and then fails with a less descriptive enoent error in File.ls! here). The path can be configured with something like
config :tzdata, :data_dir, "/some/other/path"
in one of your config/*.exs files.
By default it’s Application.app_dir(:tzdata, "priv") which seems to evaluate to /home/daniel/personal/projects/blud/blud/tzdata/priv in your case.
Ah, just saw your error is :enotdir so it might be something else.
Popular in Questions
Other popular 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
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








