If your restock alert is not working, the cause is usually a wrong URL, availability text that only appears after JavaScript runs, bot protection, a vague condition, or a check interval too slow for brief restocks. This guide walks through each failure mode, how to diagnose it, and how to fix your Scout so availability monitoring fires reliably.
Restock alerts fail silently more often than they fail loudly. The product restocks, you never get a Ping, and you assume the tool is broken. Usually the Scout was watching the wrong page, the store hides availability from simple HTTP fetches, or the restock window closed before the next scheduled check. Diagnosis starts with the URL, the condition, and what ScoutPing can actually see in public HTML.
For price-tracker-specific errors, see price tracker errors. For the full restock pipeline, read how back-in-stock alerts work.
Quick diagnosis checklist
Before diving into each failure mode, run through this list:
- Is the URL the exact product variant page? Not search results, not a collection page.
- Does availability text appear in page source? View source and search for "sold out" or "add to cart."
- Is the page public without login? ScoutPing cannot access account-only listings.
- Is the condition specific to availability? Not "tell me when anything changes."
- Is the interval fast enough? Daily checks miss restocks that last hours.
- Did the restock happen between checks? Timing gaps are not tool failures.
If all six pass and alerts still fail, bot protection or SSR limitations are the likely culprits.
Failure mode 1: Wrong URL
Symptom: Product restocks but your Scout never fires, or fires for unrelated changes.
Cause: You are watching a category page, search result, or parent product URL while a different variant restocked.
Fix:
- Copy the URL for the exact SKU, size, or seller listing
- Select your variant on the page and confirm the URL reflects it
- Create one Scout per variant you care about
See track product availability for URL best practices.
Failure mode 2: JavaScript-only availability
Symptom: You see "Add to cart" in your browser but ScoutPing never detects restock.
Cause: The store renders availability client-side. ScoutPing fetches public HTML without executing JavaScript. If the server returns a shell page and scripts inject availability afterward, ScoutPing sees the shell.
Diagnosis:
- Open the product URL in a browser
- View page source (Ctrl+U / Cmd+Option+U)
- Search for availability text ("sold out," "add to cart," your size)
If the text is not in page source, ScoutPing cannot reliably monitor it.
Fix:
- Accept the limitation for JS-heavy storefronts
- Try a different URL representation (mobile site, AMP page) if availability appears in HTML there
- Use the retailer's native notify-me if available
This is the most common technical limitation. ScoutPing does not do visual monitoring or browser automation.
Failure mode 3: Bot protection and blocked fetches
Symptom: Checks run but never detect changes you see manually. Or setup fails to fetch the page.
Cause: The store blocks automated requests with CAPTCHA, rate limiting, or bot detection.
Fix:
- ScoutPing cannot bypass CAPTCHAs — this is by design
- Try monitoring during off-peak hours (sometimes helps, not guaranteed)
- Use native store notifications as a supplement
For general site eligibility, see what websites can be monitored.
Failure mode 4: Vague or overly broad conditions
Symptom: You get Pings for unrelated changes, or the Scout never matches because the condition is too ambiguous.
Cause: Conditions like "tell me when something changes" match noise or nothing useful.
Fix:
- Tie conditions to availability language: "when sold out disappears," "when add to cart appears"
- Name specific variants: "when size 11 is available"
- Read sold-out message disappears for phrasing tips
Apply reduce website change alerts principles.
Failure mode 5: Check interval too slow
Symptom: Product restocked and sold out again before your next check.
Cause: Free daily checks have up to 24 hours between fetches. Brief restocks fit entirely in that gap.
Fix:
- Upgrade to Pro for 60, 180, 360, 720, or 1440-minute intervals
- Match interval to inventory behaviour: flickering stock needs faster checks
- Use the monitoring frequency calculator
A restock that lasts three hours can be missed by daily checks. This is expected behaviour, not a bug — see false negatives in website monitoring for why missed alerts can be more costly than noisy ones.
Failure mode 6: Login-required pages
Symptom: Scout cannot be created or never sees availability you see when logged in.
Cause: ScoutPing monitors public HTML only. Account-only pricing, member-only products, and wholesale portals are out of scope.
Fix:
- Find a public product page that shows availability without login
- Use native account notifications for member-only inventory
Failure mode 7: Deduplication confusion
Symptom: Product restocked, you got one Ping, restocked again later, no second Ping.
Cause: ScoutPing deduplicates logical events. After the first restock Ping, subsequent checks while in stock do not re-notify. If it sells out and restocks again, you need the Scout to detect a new availability transition.
Fix:
- Ensure the Scout remains active after the first restock
- If you want notification for each restock cycle, the Scout should fire on each unavailable-to-available transition
- Check Scout status is not paused
Failure mode 8: Flickering inventory
Symptom: Intermittent Pings or missed restocks on pages where stock toggles rapidly.
Cause: Inventory systems sometimes show in-stock for minutes between warehouse syncs.
Fix:
- Use faster Pro intervals
- Tie conditions to stable signals (Add to cart appearing, not transient counters)
- Accept that very short windows may be missed even with fast checks
Comparison: restock errors vs price tracker errors
| Issue | Restock alert | Price tracker |
|---|---|---|
| Wrong URL | Common | Common |
| JS-only content | Common | Common |
| Bot protection | Common | Common |
| Vague condition | Availability wording | Price threshold wording |
| Interval gap | Misses brief restocks | Misses brief price dips |
Many fixes overlap. The price tracker errors guide covers shared technical limitations.
How to rebuild a failing restock Scout
- Delete or pause the broken Scout
- Open the exact product URL in a private browser window
- Confirm availability text in page source
- Create a new Scout via back-in-stock alert
- Write a specific condition: "Tell me when sold out disappears" or "when add to cart appears"
- Choose an interval matching inventory speed
- Wait for one test cycle or use manual check if available
- If still failing, the page is likely outside ScoutPing's public HTML scope
When ScoutPing is the wrong tool
Accept limitations honestly:
- Login-only product pages
- Heavy SPA storefronts with JS-only availability
- CAPTCHA-protected pages
- Visual-only availability (colour-coded buttons with no text)
- Need for instant sub-minute notification
For pages ScoutPing can monitor, the pillar guide website availability monitoring covers the full category.
Prevention: set up restock alerts correctly the first time
| Step | Best practice |
|---|---|
| URL | Exact variant, public, no login |
| Condition | Availability-specific language |
| Interval | Daily for slow restocks; Pro for hot items |
| Scope | One Scout per variant |
| Verification | Check page source for availability text |
| Expectations | Scheduled checks, not real-time streaming |
Troubleshooting decision tree
Alert not firing?
├── Wrong URL? → Fix URL, recreate Scout
├── Availability only in JS? → Accept limitation or use native alerts
├── Bot blocked? → Cannot fix; try native alerts
├── Vague condition? → Tighten to availability language
├── Interval too slow? → Upgrade to Pro, faster interval
├── Login required? → Out of scope
└── All clear? → Contact support with URL and Scout details
Most restock alert failures are setup issues, not platform bugs. Fix the URL, tighten the condition, verify HTML visibility, and match your interval to inventory speed. Then rebuild the Scout and let scheduled checks do their job.