wp_send_json_error( mixed $data = null, int $status_code = null )

Send a JSON response back to an Ajax request, indicating failure.


If the $data parameter is a WP_Error object, the errors within the object are processed and output as an array of error codes and corresponding messages. All other types are output without further processing.



(mixed) (Optional) Data to encode as JSON, then print and die.

Default value: null


(int) (Optional) The HTTP status code to output.

Default value: null

More Information

The response object will always have a success key with the value false. If anything is passed to the function in the $data parameter, it will be encoded as the value for a data key.


File: wp-includes/functions.php

function wp_send_json_error( $data = null, $status_code = null ) {
	$response = array( 'success' => false );

	if ( isset( $data ) ) {
		if ( is_wp_error( $data ) ) {
			$result = array();
			foreach ( $data->errors as $code => $messages ) {
				foreach ( $messages as $message ) {
					$result[] = array(
						'code'    => $code,
						'message' => $message,

			$response['data'] = $result;
		} else {
			$response['data'] = $data;

	wp_send_json( $response, $status_code );


Version Description
4.7.0 The $status_code parameter was added.
4.1.0 The $data parameter is now processed if a WP_Error object is passed in.
3.5.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.