Przez 52 dni byłem dostępny na WhatsAppie i nic o tym nie wiedziałem
Ciao! 🇵🇱🇮🇹
Przez 52 dni WhatsApp pokazywał mnie jako dostępnego, w dzień i w nocy, a ja nie miałem o tym pojęcia. Zrobił to bot, któremu jedną linijką kodu zakazałem właśnie tego.
Lecimy z tematem 🚀
Dostępny, choć nikogo nie było
W czerwcu postawiłem na darmowym serwerze Oracle bota do WhatsAppa. Miał wysyłać przypomnienia o spotkaniach na żywo do kilku grup kursowych. Zbudowałem go na Baileys, nieoficjalnej bibliotece, która rozmawia z WhatsAppem tym samym protokołem co wersja przeglądarkowa, i sparowałem kodem QR z moim prywatnym numerem. Dla WhatsAppa bot stał się po prostu kolejnym moim urządzeniem, jak laptop z otwartą kartą WhatsApp Web.
O ryzyku wiedziałem. Pod koniec czerwca wyszło, że Baileys po połączeniu ogłasza mnie jako obecnego i robi to bez przerwy. Dopisałem do konfiguracji markOnlineOnConnect: false, czyli jedną linijkę z prośbą, żeby biblioteka tego nie robiła. Uznałem sprawę za zamkniętą.
Ostatnia zaplanowana wiadomość wyszła 22 lipca. Od tego dnia bot nie miał nic do roboty, ale nikt go nie wyłączył, bo po co ruszać coś, co nie przeszkadza.
10 września dotarło do mnie, że WhatsApp pokazuje mnie jako dostępnego. Cały czas.
Proces na serwerze był uruchomiony od 20 lipca, czyli 52 dni. PM2, program pilnujący, żeby bot działał w tle, naliczył mu po drodze 20 restartów. Flaga przez cały ten czas stała w pliku na swoim miejscu, co sprawdziłem potem na serwerze. Konfiguracja twierdziła, że mnie nie ogłasza, a WhatsApp widział otwartą sesję mojego konta i wyciągał własne wnioski.
Uczciwie przyznaję, że nie wiem na sto procent, którędy ten status przeciekał mimo flagi. Wiem za to, co od razu zadziałało: odłączenie urządzenia. Dopóki na serwerze leżały ważne klucze sesji, a na liście połączonych urządzeń wisiał bot, WhatsApp miał podstawy uważać, że gdzieś tam jestem. Flaga była prośbą. Sesja była faktem.
Naprawa zajęła kilka komend. Najpierw zatrzymałem bota przez pm2 stop whatsapp-ai i zapisałem ten stan przez pm2 save, żeby nie wstał po restarcie serwera. Potem w telefonie, w ustawieniach połączonych urządzeń, wylogowałem pozycję o nazwie „ubuntu”. Następnego dnia skasowałem z serwera folder auth_info, 12 MB danych sesji. Po wylogowaniu były już bezwartościowe, ale to wciąż dane logowania, a takie nie powinny leżeć tam, gdzie nikt ich nie potrzebuje.
Jeśli kiedykolwiek podłączyłeś WhatsAppa do czegoś poza telefonem, choćby do bota, integracji albo służbowego komputera, otwórz w aplikacji listę połączonych urządzeń. Każda pozycja, której nie potrafisz wyjaśnić jednym zdaniem, powinna zniknąć. Jeśli bot stoi na Twoim serwerze, pm2 list pokaże w kolumnie uptime, jak długo proces żyje. Zestaw to z datą jego ostatniego zadania. U mnie wyszło 50 dni różnicy.
Automat, który skończył robotę, nie traci przez to dostępu. Klucze zostają na serwerze, dopóki ktoś ich nie zabierze, więc ostatnie zadanie w każdym harmonogramie powinno mieć dopisane jeszcze jedno: wyłącz proces i odłącz urządzenie.
🛠️ Narzędzie
qrcode (Python)
Mała biblioteka do Pythona, która zamienia dowolny tekst w obrazek z kodem QR. Użyłem jej przy parowaniu tego bota, bo serwer pokazywał kod w terminalu jako rysunek ze znaków, który trudno było zeskanować telefonem. Skopiowałem więc surowy ciąg z logów i jedną linijką zrobiłem z niego plik PNG, a przy kodzie ważnym około 20 sekund liczyła się każda chwila. Z perspektywy tego numeru to zresztą moment, od którego wszystko się zaczęło: jedno zeskanowanie dało serwerowi klucze do mojego konta na całe lato.
python3 -c "import qrcode; qrcode.make('TEKST').save('qr.png')"
https://pypi.org/project/qrcode/
🌍 Ze świata
- WhatsApp personal number connection (Baileys) announces online presence on connect, suppressing all phone push notifications. Zgłoszenie z marca 2026 pokazuje tę samą pułapkę od strony powiadomień: bot na prywatnym numerze ogłasza obecność, a telefon milknie. Gdyby ktoś mnie pytał czy podpinać bota pod własny numer, zacząłbym od tego wątku.
- WhatsApp beta for Android 2.26.15.6: what’s new?. WhatsApp szykuje powiadomienie na telefonie, gdy inne połączone urządzenie jest aktywne w tym samym czasie co on. W kwietniu funkcja była jeszcze w wewnętrznych testach, a szkoda, bo mój bot był aktywny bez przerwy, więc alert dostałbym przy pierwszym otwarciu aplikacji.
- Why Cheap WhatsApp Bots Get Your Number Banned. Autor ostrzega, że nieoficjalne biblioteki pokroju Baileys kończą się banem numeru, i straszy bardzo stanowczo. Mój numer bana nie dostał. Dostał za to 52 dni obecności, której nie było.
😄 Na koniec

Stary biurowy trik: marynarka na krześle, żeby wszyscy myśleli, że wyszedłeś tylko na chwilę. Mój serwer robił to za mnie przez 52 dni.
Jeśli ktoś w Twoim otoczeniu powinien to przeczytać, prześlij mu ten numer. To najlepsza forma wsparcia.
A jeśli wolisz wesprzeć bezpośrednio: postaw mi kawę.
Cieszę się, że tu jesteś! Aby nie przegapić kolejnych wpisów i pomóc mi tworzyć więcej takich treści, dołącz do grona subskrybentów. To nic nie kosztuje.
Dołącz do Marini Brief →