         :ignore
 
       # If we got invalid json, just try again.
-      # FIXME(Connor) Why does this happen?
-      {:error, :invalid, _} ->
-        actual_init(email, pass, server)
+      # HACK(Connor) Sometimes we don't get valid json
+      # Just try again if that happened.
+      {:error, :invalid, _} -> actual_init(email, pass, server)
     end
   end
 end

      ]
  """

  @auth_task Application.get_env(:farmbot, :behaviour)[:authorization] || Mix.raise(error_msg)

  @doc "Start Bootstrap services."
  def start_link() do

  end

  defp actual_init(email, pass, server) do
    busy_msg = "Beginning authorization: #{email} - #{server}"
    Logger.busy(2, busy_msg)
    # get a token
    case @auth_task.authorize(email, pass, server) do
      {:ok, token} ->
        success_msg = "Successful authorization: #{email} - #{server}"
        Logger.success(2, success_msg)
        update_config_value(:bool, "settings", "first_boot", false)
        update_config_value(:string, "authorization", "token", token)

        children = [
          worker(Farmbot.Bootstrap.AuthTask,                []),
