Kontakt forma: 61 izgubljeni upit
# Naša vlastita kontaktna forma tjednima nije slala obavijesti: 61 upit, nula dojava. Kako je AI agent pronašao kvar koji nema simptoma.
Kvar kontakt forme poseban je zato što se ne vidi.
Nema poruke o grešci. Nema pada stranice. Nema ljutog korisnika — jer korisnik misli da je poslao. Vlasnik otvori stranicu, vidi da je gore, i pretpostavi da sve radi. Jedini simptom je da telefon ne zvoni, a to se pripiše sezoni ili tržištu.
Ovo se ne tiče samo nas. Odvjetnički ured, knjigovodstveni servis, projektantski biro, servisna radionica — svi primaju upite obrascem, i gotovo nitko od njih nikad nije provjerio radi li taj obrazac danas. Provjerilo se jednom, kad je stranica puštena u rad, i od tada se vjeruje.
Kako smo pronašli kvar u vlastitoj kući
Ovo je samoprijava. Anparo je Petrova vlastita tvrtka, pa ovdje ne izlažemo tuđi sustav nego svoj — priča je uvjerljivija kad je greška naša.
Roj je gradio lead magnet, generator HACCP lista, na ddd.anparo.hr. Usput se postavljalo slanje e-pošte. I tada je ispalo da postojeća kontakt forma te stranice tjednima ne isporučuje ništa.
Stranica radi. Forma se šalje. Posjetitelju piše „Hvala”. Obavijest ne stiže nikome.
U bazi je bio 61 zapis upita i nula poslanih obavijesti. Iza tih 61 zapisa stajalo je 10 stvarnih ljudi — ostalo su bili ponovljeni klikovi na „Pošalji”, jer je obrazac visio bez odgovora pa su ljudi pokušavali ponovno. Jedan je čovjek pritisnuo dvadeset puta. Drugi dvadeset jedan. Nitko od njih nije poslao e-mail ni nazvao da se požali. Jednostavno su otišli.
Uzrok je bio prozaičan: izlazni SMTP port 587 blokiran je s poslužitelja, pa je slanje visilo do isteka veze umjesto da javi grešku. Nakon prebacivanja na port 2525 slanje traje 0,6 sekundi umjesto preko 120. Popravljeno je istog dana kad je pronađeno, a svi spremljeni upiti izvučeni su iz baze i predani s kontaktima i porukama. Među njima je bio objekt koji je tražio ponudu i jedan koji je javio problem u nekoliko stanova.
Drugi sajt, gori nalaz
Kad se ista provjera pustila na sec.anparo.hr, ispalo je gore. Obrazac je od 29. srpnja vraćao grešku na svaku prijavu — 112 neuspjelih pokušaja. Taj obrazac ništa ne sprema u bazu, nego samo šalje e-poštu. Te prijave su nepovratno izgubljene. To se ne može popraviti, samo priznati.
Usput se pokazalo i da SPF zapis domene nije dopuštao servis kojim se pošta stvarno šalje. Poruke su prolazile samo zato što je postojao DKIM potpis — dakle na jednoj nozi, a da nitko to nije znao.
Pronađeno mjerenjem, ne pritužbom
Ovo je poanta cijele priče. Obrazac je bio u stvarnoj upotrebi i stvarni ljudi su tjednima slali upite. Kvar nije pronađen zato što se netko požalio — nije se požalio nitko, ni jedan posjetitelj ni jedan zaposlenik. Pronađen je zato što je agent poslao pravi zahtjev umjesto da vjeruje konfiguraciji.
A konfiguracija je cijelo vrijeme izgledala ispravno. Svaka postavka bila je na svom mjestu. Da je provjera čitala postavke, prošla bi.
Monitor koji šuti kad je sve u redu
Rezultat je agent koji dvaput tjedno, ponedjeljkom i četvrtkom, pošalje stvaran zahtjev kroz produkcijski obrazac — kao da je posjetitelj — i javi ako nešto ne prolazi.
Dvije odluke u njemu vrijede više od koda:
Vrijeme odgovora dio je provjere, ne samo status. Oba kvara očitovala su se kao visenje, a ne kao greška: blokiran port i čekanje na prijavu koje u pozadinskom procesu nema tko dovršiti. Zato se odgovor dulji od 8 sekundi tretira kao kvar, ne kao sporost.
Dojava ne ide istim kanalom koji se nadzire. Alarm o pokvarenoj e-pošti koji stiže e-poštom beskoristan je. Javlja se na Teams, drugom vezom. Monitor za sobom počisti svoje testne zapise da ne zatrpa popis upita, i inače šuti.
Što ovo znači za vlasnika procesa
Port i SPF ovdje su dokaz, nisu tema. Tema je klasa kvara koja nema simptom — proces koji tiho ne radi, a svima izgleda kao da radi. Kontakt forma samo je najjeftiniji primjer; isto vrijedi za svaku obavijest, izvještaj ili prosljeđivanje koje ovisi o koraku koji nitko ne gleda.
Razlika između sustava koji se nadzire i onog koji se pretpostavlja mjeri se u upitima koje niste dobili i nikad nećete znati da ste ih imali.
I sam ovaj članak, kao i agent o kojem govori, izgradio je roj DigitalBees agenata. To je namjerno: ne tražimo da vjerujete obećanju da AI agent može djelovati, a ne samo savjetovati. Ovo je dokaz — agent je pronašao kvar koji nitko nije prijavio.
Ako želite jedan test danas: pošaljite sami sebi upit preko vlastitog obrasca i izmjerite koliko traje dok obavijest ne stigne. Ako ne stigne za minutu, imate isti problem koji smo imali mi — samo ga još ne znate.
Isti se propust može dogoditi na bilo kojoj stranici, bez obzira na to čime je izrađena. Ako vas zanima što stranica traži nakon lansiranja, pročitajte i širu usporedbu AI agencije naspram DIY alata.
Često postavljena pitanja
Kako mogu danas provjeriti radi li moja kontakt forma?
Otvorite vlastitu stranicu kao običan posjetitelj, ispunite obrazac i pošaljite ga — i mjerite vrijeme. Ako obavijest ne stigne osobi koja na upite odgovara unutar minute, imate problem. Provjerite i mapu neželjene pošte, i to na svim adresama na koje bi obavijest trebala stići. Ako je obrazac sporiji od nekoliko sekundi, to nije „sporost” nego rani znak istog kvara koji smo opisali: slanje koje visi umjesto da javi grešku.
Zar uptime monitoring ne pokriva ovo?
Ne. Uptime monitor provjerava je li stranica dostupna — a stranica je cijelo vrijeme bila dostupna. Obrazac se uredno prikazivao, primao unos i ispisivao poruku zahvale. Kvar je bio u koraku nakon toga, u dostavi obavijesti, i nijedan uptime alat ga ne vidi. Zato naša provjera šalje stvaran zahtjev kroz živi obrazac umjesto da čita konfiguraciju ili status stranice.
Ako su upiti već izgubljeni, može li se išta vratiti?
Ovisi o tome sprema li vaš obrazac unos u bazu prije slanja e-pošte. Na ddd.anparo.hr sprema, pa smo svih 61 zapis izvukli i predali s kontaktima i porukama. Na sec.anparo.hr obrazac ništa ne sprema, nego samo šalje e-poštu — tih 112 pokušaja nema odakle povratiti. Praktična pouka: neka svaki obrazac zapisuje unos lokalno prije nego što išta pokuša poslati. To je jeftina promjena koja razliku između „izgubljeno” i „vraćeno” čini stvarnom.
Ovaj članak je generirao i objavio autonomni agent. Vidi dokaz.
Pridružite se AI revoluciji →