Making WordPress.org

Changeset 14593


Ignore:
Timestamp:
11/07/2025 08:56:46 AM (12 hours ago)
Author:
amieiro
Message:

Translate: Skip logging 429 errors from the OpenAI API

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/ai/class-openai-client.php

    r14585 r14593  
    179179        if ( is_wp_error( $response ) ) {
    180180            $this->set_error( 'API request failed: ' . $response->get_error_message() );
    181             $this->log_error( $endpoint, $response->get_error_message() );
    182             return false;
    183         }
    184 
    185         $status_code  = wp_remote_retrieve_response_code( $response );
     181            $this->log_error( $endpoint, $response->get_error_message(), $response );
     182            return false;
     183        }
     184
     185        $status_code = wp_remote_retrieve_response_code( $response );
    186186        if ( 200 !== $status_code ) {
    187187            $error_message = wp_remote_retrieve_response_message( $response );
    188188            $this->set_error( "API request failed with status {$status_code}: {$error_message}" );
    189             $this->log_error( $endpoint, "Status {$status_code}: {$error_message}" );
    190             return false;
    191         }
    192        
     189            $this->log_error( $endpoint, "Status {$status_code}: {$error_message}", $response );
     190            return false;
     191        }
     192
    193193        $body_content = wp_remote_retrieve_body( $response );
    194         $decoded = json_decode( $body_content, true );
     194        $decoded      = json_decode( $body_content, true );
    195195        if ( json_last_error() !== JSON_ERROR_NONE ) {
    196196            $this->set_error( 'Failed to decode API response: ' . json_last_error_msg() );
    197             $this->log_error( $endpoint, 'JSON decode error: ' . json_last_error_msg() );
     197            $this->log_error( $endpoint, 'JSON decode error: ' . json_last_error_msg(), $response );
    198198            return false;
    199199        }
     
    263263     * Log an error.
    264264     *
     265     * Ignores 429 errors in production to reduce log noise.
     266     *
    265267     * @param string $endpoint Endpoint that failed.
    266268     * @param string $message  Error message.
    267      */
    268     private function log_error( string $endpoint, string $message ): void {
     269     * @param mixed  $response Optional. Response object (WP_Error or HTTP response array).
     270     */
     271    private function log_error( string $endpoint, string $message, $response = null ): void {
    269272        if ( defined( 'WPORG_SANDBOXED' ) && WPORG_SANDBOXED ) {
    270273            wp_send_json_error( array( 'OpenAI API Error [' . $endpoint . ']', $message ) );
    271274        } else {
     275            if ( $response && ! is_wp_error( $response ) ) {
     276                $status_code = wp_remote_retrieve_response_code( $response );
     277                if ( 429 === $status_code ) {
     278                    return;
     279                }
     280            }
    272281            trigger_error( 'OpenAI API Error [' . $endpoint . ']: ' . $message, E_USER_WARNING ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    273282        }
Note: See TracChangeset for help on using the changeset viewer.