algoliasearch-client-php icon indicating copy to clipboard operation
algoliasearch-client-php copied to clipboard

Misleading error handling

Open greg0ire opened this issue 3 years ago • 1 comments

  • Algolia Client Version: 3.2.0
  • Language Version: 8.1.2

Description

It seems like the current implementation of the exception is misleading:

https://github.com/algolia/algoliasearch-client-php/blob/ffef644ac41411f64e4522157ed53fb825b0908a/src/RetryStrategy/ApiWrapper.php#L151-L196

To day, I got the following exception Impossible to connect, please check your Algolia Application Id.

Turning on logging revealed that this was in fact due to a missing feature on a new infrastructure we are testing:

^ array:3 [
  "level" => "debug"
  "message" => "Algolia API client: Host failed."
  "context" => array:7 [
    "body" => array:1 [
      "numericFilters" => "document_update_time < 1650806228"
    ]
    "headers" => array:4 [
      "X-Algolia-Application-Id" => "redacted"
      "X-Algolia-API-Key" => "redacted"
      "User-Agent" => "Algolia for PHP (3.2.0); PHP (8.1.2); Guzzle (7)"
      "Content-Type" => "application/json"
    ]
    "method" => "POST"
    "query" => []
    "retryNumber" => 4
    "host" => "https://mlnqxjqtya-1.algolianet.com/1/indexes/int_products_gb/deleteByQuery"
    "description" => "Retriable failure on mlnqxjqtya-1.algolianet.com: Not Implemented"
  ]
]

I would expect never to get an exception that is plain wrong. Before getting this issue, I had a problem where my index name was wrong, but it was diagnosed in the same way: Impossible to connect, please check your Algolia Application Id..

What I would expect would be the last error to be remembered and used in the exception message. Also, the exception type is wrong: the host was not unreachable, it was missing a feature.

greg0ire avatar Apr 25 '22 13:04 greg0ire

I'd posit that this is a significant problem. For our integration, we provide Algolia connection details only in our production environment. On non-production environments, this will generate a fatal PHP error and cause the application to crash.

markfullmer avatar Feb 15 '23 15:02 markfullmer