BATCH + [params ...] BATCH - BATCH is used to send a batch of commands to the server. Which types of batches are valid to send depends on which capabilities the client has requested via the CAP REQ command and have been confirmed via CAP ACK. Individual batch types have further restrictions on which commands are valid within that batch. A batch must be opened via the first syntax, and closed via the second syntax. Server-side processing of the batch is postponed until the batch is closed. Commands that are part of the batch must include the batch message-tag referencing the reference-tag value which began the batch. If the batch is kept open for 15 seconds, it will time out and be ignored. Errors with batches use the standard-replies framework via FAIL commands. The following error codes are used across all batch types, and individual batch types may have their own error codes. Each response additionally has a human- readable error message as the trailing parameter which varies to give a more detailed message of what is wrong. - FAIL BATCH TIMEOUT The batch was kept open for too long and has timed out. - FAIL BATCH INVALID_NESTING The parent batch type does not allow batches of this type to be nested under it. - FAIL BATCH INVALID_REFTAG The reference-tag supplied with the batch is not valid. - FAIL BATCH UNKNOWN_TYPE The type of batch specified is not valid. - FAIL BATCH INCOMPLETE An outer batch was closed before a nested inner batch. The reference-tag refers to the inner batch.