       {:error, :module_not_found} ->
         res = :gen_event.add_sup_handler(mod, handler, args)
         do_init(res, mod, handler)
+
       _ ->
         init({mod, handler, args})
     end

    case res do
      :ok ->
        {:ok, {mod, handler}}
      {:error, :ignore} ->
        # Can't return :ignore as a transient child under a one_for_one.
        # Instead return ok and then immediately exit normally - using a fake
        # message.
        send(self(), {:gen_event_EXIT, handler, :normal})
        {:ok, {mod, handler}}
      {:error, reason}  ->
        {:stop, reason}
    end
  end

  end

  def handle_info({:gen_event_EXIT, handler, reason}, {mod, handler} = state) do
    message = [
      ":gen_event handler ",
      inspect(handler),
      " installed at ",
      inspect(mod),
      ?\n,
      "** (exit) ",
      format_exit(reason)
    ]

    _ = Logger.error(message)
    {:stop, reason, state}
  end

