             {:raw, command_class_name},
             {:raw, payload}]
 
-    operation_and_maybe_refetch_schema(conn, :command, args, opts)
+    refetching_schema conn, fn ->
+      C.operation(conn, :command, args, opts)
+    end
   end
 
   @doc """

    if opts[:no_response] do
      C.no_response_operation(conn, :record_delete, args ++ [@request_modes.no_response])
    else
      operation_and_maybe_refetch_schema(conn, :record_delete, args ++ [@request_modes.sync], opts)
    end
  end


    Protocol.encode_list_of_terms(args)
  end

  defp refetching_schema(conn, fun) do
    case fun.() do
      {:error, :unknown_property_id} ->
        C.fetch_schema(conn)
        fun.()
      o ->
        o
    end
