Rano, na mojej skrzynce „systemowej”, na którą spływają (prze)różne powiadomienia wśród masy (prze)różnych raportów znalazłem powiadomienie o błędzie przy tworzeniu kopii zapasowej, jaki pojawił się podczas pracy wtyczki BackWPup, która akurat na tamtej stronie odpowiada za część kopii. I choć sprawa może i poważna, choć raczej nie pilna, to jednak postanowiłem się temu przyjrzeć jeszcze przed śniadaniem.

BackWPup i błąd z GuzzleHttp, czyli Facebook for WordPress 3.0.1

Bo nawet jeśli jest to tylko jeden z elementów systemu kopii bezpieczeństwa na tej stronie (bo choć wtyczka dobra, to trzeba jej pilnować), to różnie bywa, i może się okazać, że w razie problemów, akurat ten element był kluczowy w danym momencie.

W każdym razie wtyczka BackWPup wyświetlała taki oto błąd:

ERROR: Exception caught in Error: Call to undefined method GuzzleHttp\Utils::chooseHandler()

W swoich logach podobnie:

[05-Feb-2021 08:18:00] Backup archive created.
[05-Feb-2021 08:18:00] Archive size is 3,74 MB.
[05-Feb-2021 08:18:00] 3 Files with 58,94 MB in Archive.
[05-Feb-2021 08:18:01] 1. Trying to send backup file to S3 Service …
[05-Feb-2021 08:18:01] ERROR: Exception caught in Error: Call to undefined method GuzzleHttp\Utils::chooseHandler()
[05-Feb-2021 08:18:02] 2. Trying to send backup file to S3 Service …
[05-Feb-2021 08:18:02] ERROR: Exception caught in Error: Call to undefined method GuzzleHttp\Utils::chooseHandler()
[05-Feb-2021 08:18:03] 3. Trying to send backup file to S3 Service …
[05-Feb-2021 08:18:03] ERROR: Exception caught in Error: Call to undefined method GuzzleHttp\Utils::chooseHandler()
[05-Feb-2021 08:18:04] ERROR: Step aborted: too many attempts!
[05-Feb-2021 08:18:04] One old log deleted
[05-Feb-2021 08:18:04] ERROR: Job has ended with errors in 8 seconds. You must resolve the errors for correct execution.

Pierwsza myśl, to taka, że wczoraj stronę przełączyłem nie tylko na PHP 7.4, ale również na PHP Pools, i być może coś tu nie zadziałało prawidłowo, może jakieś uprawnienia, może brak jakiegoś modułu. Ale pamiętałem, że zarówno przed jak i po tej zmianie tworzyłem kopie zapasowe, również z wykorzystaniem wtyczki BackWPup, więc to raczej nie ten kierunek…

Tak więc by nie bawić się w dalsze zgadywanie, sięgnąłem do logów serwera (Nginx), gdzie szybko znalazłem potencjalnego winowajcę:

2021/02/05 08:07:12 [error] 18352#18352: *61764 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined method GuzzleHttp\Utils::chooseHandler() in /var/wwwwp-content/plugins/backwpup/vendor/guzzlehttp/guzzle/src/HandlerStack.php(42): GuzzleHttp\choose_handler()

Bo obok wtyczki BackWPup z problemem z GuzzleHttp pojawia się wtyczka Facebook for WordPress, która zresztą niedawno miała aktualizację.

Szybki test z wyłączoną wtyczką Facebook for WordPress i wszystko działa. Szybki test z cofnięciem wersji wtyczki z 3.0.1 do 3.0.0 i… nadal wszystko działa. Aktualizacja do najnowszej wersji, i znowu problem. Tak więc wersja 3.0.1 wtyczki Facebook for WordPress trafiła na czarną listę „ignoruj aktualizacje”. I cierpliwie poczeka na wersję następną, która – mam nadzieję – poprawi ten błąd. Zwłaszcza że z tego co widzę, już ktoś to im zgłosił.

A skoro przy oficjalnych wtyczkach do WordPressa jesteśmy, to jestem więcej niż pewien, że dziś jeszcze na naszych łamach zagości kolejna wtyczka z tej stadni, tym razem do WooCommerce, bo wczoraj na prośbę pewnej koleżanki (która zresztą ostatnio jest świetnym dawcą tematów na artykuły ;-)) i tą wtyczką się zająć musiałem…

(!) Zgłoś błąd na stronie