Skip to content

[bug]: BC Break starting v4.10.0 for batch operations in SearchClient #744

Open
@TalkMarc

Description

@TalkMarc

Description

The following commit changed the method signature of multiple SearchClient methods, causing existing implementations to break when updating to algoliasearch-client-php v4.10.0 or higher:
50bc69c#diff-54160c7bd8737a7321b4384faa37eda8798b45865a44cab860fb736b08a60057R2945-R2962

Since the commit adds a new parameter in the middle of the established ones, existing code calling these methods with requestOptions (and possibly waitForTasks) will break as the arguments are now misaligned. Missing type checks furthermore causes this to surface as an obscure error (see log output). Only implementations that explicitly used named arguments aren't affected.

The method doc-block also erroneously hints the new batchSize parameter type to be an array.

Minor releases shouldn't contain BC-breaking changes for publicly supported methods. If a new parameter is added, it should be appended at the end as to not break existing method calls for dependents.

Client

Search

Version

4.10, 4.12

Relevant log output

In SearchClient.php line 3112:
                                         
  [Error]                                
  Cannot use a scalar value as an array  
                                         

Exception trace:
  at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:3112
 Algolia\AlgoliaSearch\Api\SearchClient->sendRequest() at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:355
 Algolia\AlgoliaSearch\Api\SearchClient->batch() at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:3028
 Algolia\AlgoliaSearch\Api\SearchClient->chunkedBatch() at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:2961
 Algolia\AlgoliaSearch\Api\SearchClient->saveObjects() at /srv/sylius/src/Client/AlgoliaIndexClientV4.php:27

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions