## TL;DR
Fix this in the billing portal scraper by acting on the exact problem first: check the portal session and the renewal record filter before scraping, widen the filter to the current term if it is set to a closed period, and fall back to the billing export for any account the portal still returns empty. Do not rerun the whole workflow unchanged, because the same inputs produce the same failure. Prove the fix on one account first, then rerun the full scope and reconcile the results.

```text
scraper failed on billing portal renewal record returning empty results for assembling the renewal brief error scraping failure
```

## Use this when
- The operation in the billing portal scraper fails with this exact problem: scraper failed on billing portal renewal record returning empty results for assembling the renewal brief error scraping failure.
- The same failure repeats on retry with unchanged inputs.
- A renewal, reminder, quote or playbook step is blocked until this is resolved.

## Not for this skill when
- The notice is a platform outage from the vendor. Resolve that first, then return here if this problem remains.
- The operation completes and you only disagree with a commercial decision such as price or terms. That is a negotiation, not this failure.

## Steps
1. Reproduce the failure on one named account in the billing portal scraper and record the full problem text plus the account, contract or quote involved. Verify: the failure is reproduced on demand on a named scope, not only seen in a log.
2. Apply the specific fix for this problem: check the portal session and the renewal record filter before scraping, widen the filter to the current term if it is set to a closed period, and fall back to the billing export for any account the portal still returns empty. Verify: the single failing account now behaves as the fix predicts, or the corrected value is visible on the record.
3. Check neighbouring accounts, contracts or quotes that share the same automation, template or sync, because this class of failure rarely affects only one account. Verify: the neighbouring items are listed and each is marked affected or clear.
4. Rerun the original operation in the billing portal scraper on the previously failing scope, watching for the same problem rather than assuming success from a quiet log. Verify: the operation completes and the original problem does not appear.
5. Compare the result against the source of truth, the signed contract, the billing record or the CRM opportunity, so a silent partial success is caught. Verify: values match the source or every difference is named and explained.
6. Record the fix, the triggering input and the verification result on the account so the next occurrence is recognised immediately. Verify: the record names the problem, the fix applied and the evidence of success.

## Variant phrasings

### scraper failed on billing portal renewal record returning empty results for assembling the renewal brief error scraping failure
The verbatim form searchers paste from the console, report or run log. Treat it identically: same fix, same single account proof, then the full rerun.

### How to fix - scraper failed on billing portal renewal record returning empty results for assembling the renewal brief error scraping failure
The how to phrasing for the same failure in the billing portal scraper. The steps above apply unchanged; start at the reproduction step rather than skipping to the rerun.

### the billing portal scraper troubleshooting for this failure
The symptom first phrasing used when the console hides the full problem. Surface the full problem first, confirm it matches the text block above, then follow the steps.

## Why it happens
An empty scrape usually means the portal filter excludes the records or the session lost its account scope, not that no renewal records exist, so the filter is checked before the scraper code.

## Edge cases
- The account was amended, reassigned or re priced after the failing run started. Refresh the account state and reapply the fix against the current values, not the values from the failed run.
- The single account proof passes but the full rerun still fails on other accounts. Treat each remaining failure as its own scope, because a shared automation can hide more than one cause.
- The source systems disagree on the correct value. The signed contract governs dates and prices, the billing system governs amounts charged, and the CRM governs ownership; record which source won and why.

Compatibility: the billing portal scraper at current versions, plus the CRM, billing or CS platform the query names; no extra tooling beyond access to the source records needed to verify results.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_WzEuGRsAm6SIwT3SOsQeWg
