Meilisearch-laravel-scout: Parameter yang salah untuk MeiliSearch\Exceptions\HTTPRequestException

Dibuat pada 10 Agu 2020  ·  14Komentar  ·  Sumber: meilisearch/meilisearch-laravel-scout

Mulai mendapatkan pengecualian ini setelah memutakhirkan ke versi terbaru kemarin dari paket ini.

Stacktrace:

[2020-08-10 15:22:11] production.ERROR: Wrong parameters for MeiliSearch\Exceptions\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) {"exception":"[object] (Error(code: 0): Wrong parameters for MeiliSearch\\Exceptions\\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) at /home/redacted/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php:20)
[stacktrace]
#0 /home/redacted/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php(20): Exception->__construct()
#1 /home/redacted/vendor/meilisearch/meilisearch-php/src/Http/Client.php(182): MeiliSearch\\Exceptions\\HTTPRequestException->__construct()
#2 /home/redacted/vendor/meilisearch/meilisearch-php/src/Http/Client.php(165): MeiliSearch\\Http\\Client->parseResponse()
#3 /home/redacted/vendor/meilisearch/meilisearch-php/src/Http/Client.php(101): MeiliSearch\\Http\\Client->execute()
#4 /home/redacted/vendor/meilisearch/meilisearch-php/src/Endpoints/Delegates/HandlesDocuments.php(29): MeiliSearch\\Http\\Client->post()
#5 /home/redacted/vendor/meilisearch/meilisearch-laravel-scout/src/Engines/MeilisearchEngine.php(59): MeiliSearch\\Endpoints\\Indexes->addDocuments()
#6 /home/redacted/vendor/laravel/scout/src/Jobs/MakeSearchable.php(42): Meilisearch\\Scout\\Engines\\MeilisearchEngine->update()
#7 [internal function]: Laravel\\Scout\\Jobs\\MakeSearchable->handle()
Laravel integration

Semua 14 komentar

Masalah yang sama di sini, setelah memperbarui paket ini saya perlu memperbarui contoh kode ini diambil dari Readme seperti di bawah ini =>

Book::search('prince', function (Index $meilisearch, $query, $options) {
    $options['filters'] = 'author="Antoine de Saint-Exupéry"';

    return $meilisearch->search($query, $options);
})->take(3)->get();

Ke

Book::search('prince', function (Indexes $meilisearch, $query, $options) {
    $options['filters'] = 'author="Antoine de Saint-Exupéry"';

    return $meilisearch->search($query, $options);
})->take(3)->get();

Lihat parameter $meilisearch , telah mengetik petunjuk ke Meilisearch\Index sebelumnya, tetapi sekarang kita perlu mengetikkan petunjuk ke MeiliSearch\Endpoints\Indexes .

Dan kemudian saya memiliki masalah ini:

[2020-08-11 15:56:50] local.ERROR: Wrong parameters for MeiliSearch\Exceptions\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) {"userId":2,"exception":"[object] (Error(code: 0): Wrong parameters for MeiliSearch\\Exceptions\\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) at /var/www/html/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php:20)
[stacktrace]
#0 /var/www/html/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php(20): Exception->__construct(NULL, 405, NULL)
#1 /var/www/html/vendor/meilisearch/meilisearch-php/src/Http/Client.php(182): MeiliSearch\\Exceptions\\HTTPRequestException->__construct(405, NULL)
#2 /var/www/html/vendor/meilisearch/meilisearch-php/src/Http/Client.php(165): MeiliSearch\\Http\\Client->parseResponse(Object(GuzzleHttp\\Psr7\\Response))
#3 /var/www/html/vendor/meilisearch/meilisearch-php/src/Http/Client.php(101): MeiliSearch\\Http\\Client->execute(Object(GuzzleHttp\\Psr7\\Request))
#4 /var/www/html/vendor/meilisearch/meilisearch-php/src/Endpoints/Indexes.php(127): MeiliSearch\\Http\\Client->post('/indexes/compan...', Array)
#5 /var/www/html/app/Models/Company.php(394): MeiliSearch\\Endpoints\\Indexes->search('oj', Array)
#6 [internal function]: App\\Models\\Company::App\\Models\\{closure}(Object(MeiliSearch\\Endpoints\\Indexes), 'oj', Array)
#7 /var/www/html/vendor/meilisearch/meilisearch-laravel-scout/src/Engines/MeilisearchEngine.php(128): call_user_func(Object(Closure), Object(MeiliSearch\\Endpoints\\Indexes), 'oj', Array)
#8 /var/www/html/vendor/meilisearch/meilisearch-laravel-scout/src/Engines/MeilisearchEngine.php(92): Meilisearch\\Scout\\Engines\\MeilisearchEngine->performSearch(Object(Laravel\\Scout\\Builder), Array)
#9 /var/www/html/vendor/laravel/scout/src/Builder.php(220): Meilisearch\\Scout\\Engines\\MeilisearchEngine->search(Object(Laravel\\Scout\\Builder))
#10 /var/www/html/app/Models/Company.php(396): Laravel\\Scout\\Builder->raw()
#11 /var/www/html/app/Http/Livewire/Admin/ShowCompanies.php(171): App\\Models\\Company::searchBy('oj', Array)
#12 /var/www/html/vendor/livewire/livewire/src/Component.php(99): App\\Http\\Livewire\\Admin\\ShowCompanies->render()
#13 /var/www/html/vendor/livewire/livewire/src/Connection/ConnectionHandler.php(29): Livewire\\Component->output(NULL)
#14 /var/www/html/vendor/livewire/livewire/src/Controllers/HttpConnectionHandler.php(13): Livewire\\Connection\\ConnectionHandler->handle(Array)
#15 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): Livewire\\Controllers\\HttpConnectionHandler->__invoke('admin.show-comp...')
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Livewire\\Controllers\\HttpConnectionHandler), '__invoke')
#17 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\\Routing\\Route->runController()
#18 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#20 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(77): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#35 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#36 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#39 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#40 /var/www/html/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(65): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#42 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#43 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#44 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 /var/www/html/vendor/fruitcake/laravel-cors/src/HandleCors.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#48 /var/www/html/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#52 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#53 /var/www/html/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#54 {main}
"} 

Hallo teman-teman!

Maaf, rilis sebelumnya seharusnya merupakan minor baru ( v0.11.0 bukannya v0.10.7 ). Kami tidak menyadari itu melanggar! Maaf tentang itu!

@YannickYayo , terima kasih atas perbaikannya! PR #38 ini memperhitungkan apa yang Anda katakan! Apakah itu cukup bagi Anda atau apakah saya melewatkan sesuatu? 🙂

@dmyers , apakah perbaikan @YannickYayo menyelesaikan masalah Anda?

@dmyers dan @YannickYayo (dan @shokme). Pertanyaan lain: menurut Anda apakah kami harus menghapus v0.10.7 dari Packagist dan dari GitHub dan membuat v0.11.0 ? Atau cukup membuat v0.11.0 saja?

Oh saya lupa menyebutkannya, tetapi perbaikan kecil saya tidak menyelesaikan masalah dengan Wrong parameters for MeiliSearch\Exceptions\HTTPRequestException... :(
Saya akan mencoba men-debugnya dan memberikan umpan balik.

Menurut saya, membuat v0.11.0 sudah cukup, mungkin Anda bisa menulis peringatan tentang v0.10.7 .

Ya, saya telah membuat perubahan yang sama seperti yang dilakukan @YannickYayo dengan typehint untuk indeks dan pengecualian ini terjadi setelahnya.

Maaf tidak sengaja ditutup karena salah klik.

Setuju dengan @Yannick tentang pembuatan versi, tetapi saya tidak begitu tahu banyak tentang semver atau praktik terbaik tentang hal itu sejujurnya sebagian besar paket saya digunakan hanya oleh saya. 😄

Btw ini tidak akan diperbaiki begitu saja dengan #38 karena pengecualian ini disebabkan oleh perubahan terbaru dari ketergantungan PHP MeiliSearch upstream yang menambahkan kompatibilitas dengan v0.13 .

https://github.com/meilisearch/meilisearch-laravel-scout/releases/tag/v0.10.7

Memperbarui :

Saya menggunakan versi 0.12 dari mesin Meilisearch, setelah memutakhirkannya di buruh pelabuhan ke 0.13 dan mengindeks ulang dokumen saya, itu memperbaiki masalah untuk saya!

Ok maaf guys, saya pergi puasa, saya mengerti PR saya tidak memperbaiki apa pun kecuali sebagian kecil dari README

Jadi sekarang @YannickYayo , saya mengerti masalah Anda sudah diperbaiki, bukan? Saya telah memperbarui README di #38 sesuai dengan apa yang Anda katakan: meilisearch-laravel-scout v0.10.7 tidak kompatibel dengan MeiliSearch v0.12.0 dan sebelumnya

@dmyers , saya mengerti masalah Anda masih ada meskipun:

  • perubahan Index menjadi Indexes
  • pembaruan instance MeiliSearch Anda (v0.13.0)

Benar?

@curquiza Ya, menggunakan Meilisearch v0.13.0 memperbaiki masalah saya :+1:

Saya telah menggunakan versi v0.13.0 sejak sebelum saya membuka masalah ini.

Saya masih mendapatkan kesalahan ini sampai hari ini, tetapi tampaknya disebabkan oleh PHP SDK jika instance server pencarian saya sedang down yang terjadi secara acak dan satu-satunya solusi bagi saya adalah untuk me-restart itu, tetapi masih tidak ideal bahwa SDK PHP resmi Meilisearch tidak menangani kode status pengecualian yang tepat untuk kasus itu.

Saya percaya akar penyebabnya adalah penggunaan ekstensi kelas Pengecualian yang buruk di kelas HTTPRequestException yang secara tidak benar menukar urutan argumen kelas Pengecualian di PHP stdlib.

Di sini Anda dapat melihat urutan argumen untuk Exception :
https://www.php.net/manual/en/exception.construct.php

Sekarang lihat urutan args untuk HTTPRequestException :
https://github.com/meilisearch/meilisearch-php/blob/master/src/Exceptions/HTTPRequestException.php#L15

Jadi sekarang kembali ke Laravel, entah bagaimana server MeiliSearch saya membeku atau sesuatu dan kesalahan ini membanjiri tabel failed_jobs saya dan setelah saya restart itu teratasi, tetapi masalah ini dimulai setelah memutakhirkan paket ini. Saya memiliki sekitar 80.000 catatan dalam tabel ini sejak saya memutakhirkan.

Screen Shot 2020-08-17 at 4 18 34 PM

Oh maaf @dmyers , masalah ini seharusnya tidak ditutup, ya

Bisakah Anda memberikan bagian dari kode yang gagal? Karena saat ini rumit bagi kita untuk menebak apa yang terjadi tanpa detail. Saya tidak berhasil mendapatkan Error .
Bagaimanapun, MeiliSearch seharusnya tidak membeku apa pun yang Anda lakukan. Sebuah konteks akan sangat membantu untuk melaporkannya dan untuk memperbaiki Error

@dmyers pembaruan telah didorong, ini harus menyelesaikan "Parameter salah".

Anda harus memperbarui paket ke versi ^0.12 , yang juga mengharuskan Anda untuk menambahkan httpclient dan pabrik Anda dapat melihat detailnya dalam instruksi instalasi dari readme.

Terima kasih banyak atas pembaruannya @shokme. Saya masih melihat pengecualian ini di tabel pekerjaan saya yang gagal di aplikasi Laravel saya, tetapi merasa sulit untuk mendapatkan kasus uji yang dapat direproduksi untuk dibagikan dan jadi saya senang Anda bisa menyelesaikannya.

Saya akan menguji versi baru segera.

Halo @dmyers , apakah ini masih menjadi masalah, bisakah saya menutupnya? :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

marky291 picture marky291  ·  6Komentar

elfeffe picture elfeffe  ·  30Komentar

curquiza picture curquiza  ·  17Komentar

Cannonb4ll picture Cannonb4ll  ·  6Komentar

dreamcog picture dreamcog  ·  14Komentar