     if opts[:no_response] do
       C.no_response_operation(conn, :record_create, args ++ [@request_modes.no_response])
     else
-      operation_and_maybe_refetch_schema(conn,
-                                         :record_create, args ++ [@request_modes.sync],
-                                         opts)
+      refetching_schema conn, fn ->
+        C.operation(conn, :record_create, args ++ [@request_modes.sync], opts)
+      end
     end
   end
 

            {:raw, command_class_name},
            {:raw, payload}]

    operation_and_maybe_refetch_schema(conn, :command, args, opts)
  end

  @doc """

    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
