WordPress.org

Make WordPress Core

Opened 18 months ago

Last modified 3 months ago

#48823 new enhancement

Collect all REST API meta errors at once

Reported by: TimothyBlynJacobs Owned by:
Milestone: 5.8 Priority: normal
Severity: normal Version: 4.7
Component: REST API Keywords: has-patch has-unit-tests
Focuses: Cc:

Description

Currently, when updating meta, we return immediately after encountering a WP_Error. If there are issues with multiple meta keys, you have to correct each value and send a new request one at a time. I think it'd be ideal if we could process all the meta fields and then return all the errors that are encountered at once.

WP_Error supports multiple error messages with the same code, but it does not support multiple bits of error_data for the same code. This would be a problem for the errors that include the affected meta key in the error data. Right now, the REST API duplicates this data for each error with the same code ( WP_REST_Server::error_to_response ). I think we'd need to find a way to retain the error message and data correlation in WP_Error.

Change History (7)

#1 @TimothyBlynJacobs
7 months ago

  • Milestone changed from Awaiting Review to 5.7

Going to try taking a look at this for 5.7 now that we can merge WP_Error objects and keep additional data.

This ticket was mentioned in Slack in #core by hellofromtonya. View the logs.


4 months ago

#3 @hellofromTonya
4 months ago

  • Keywords needs-patch added

Per Timothy in today's core scrub:

Needs patch probably. Planning on working on it this week

This ticket was mentioned in PR #877 on WordPress/wordpress-develop by TimothyBJacobs.


4 months ago

  • Keywords has-patch has-unit-tests added; needs-patch removed

This ticket was mentioned in Slack in #core-restapi by hellofromtonya. View the logs.


4 months ago

#6 @hellofromTonya
3 months ago

Per Timothy, this ticket is blocked by #46191.

#7 @TimothyBlynJacobs
3 months ago

  • Milestone changed from 5.7 to 5.8

Punting as multi error data isn't solved yet.

Note: See TracTickets for help on using tickets.