# Changelog of Bilasolur Iceland Car Scraper (`devilscrapes/bilasolur-iceland-cars`) Actor

- **URL**: https://apify.com/devilscrapes/bilasolur-iceland-cars/changelog.md
- **Full Actor documentation**: https://apify.com/devilscrapes/bilasolur-iceland-cars.md

## Bilasolur Iceland Car Scraper — Changelog

### 0.4.0 — 2026-07-10

- Fixed new-vehicle ("Nýtt ökutæki") card parsing: those listings have no
  registration date or odometer reading yet, so the first tech-details line
  reads a bare year or "<YYYY> · Nýtt ökutæki" instead of the usual
  "<M>/<YYYY> · <mileage> km.". `card_fuel_type` was matching that line as
  the fuel type (dropping the real fuel value) and `card_year` returned
  `None` instead of the bare year. Reproduced live: ~5% of home-feed cards
  (10/186) hit this shape.
- `card_year` now also extracts a bare 4-digit year when no `M/YYYY` match
  is found; `card_fuel_type` skips any line carrying the bare-year or
  "Nýtt ökutæki" marker, same as it already skips reg/mileage/drivetrain
  lines.
- Root cause of the residual ~41% customer failure rate after v0.3.0 (which
  fixed the RESIDENTIAL-proxy hard fail): partially a data-quality bug on
  new-vehicle listings, on top of any remaining intermittent
  proxy/IP blocking that FREE-tier residential rotation already mitigates.
- Added `test_new_vehicle_card_year_and_fuel_type` and
  `test_new_vehicle_card_without_year_still_gets_fuel_type` regression tests.

### 0.3.0 — 2026-06-13

- Graceful proxy fallback: replace hard-fail on RESIDENTIAL unavailability with a two-step
  resolution — try RESIDENTIAL first, then fall back to the account's automatic proxy group.
  Customers without RESIDENTIAL access were getting an immediate RuntimeError; they now
  proceed with auto proxy and get a warning in the run log and status message.
- The scraper's existing 403 retry/rotation logic handles any site blocks from non-residential
  IPs — no new scraping logic changes required.
- Root cause of 28% 30-day success rate: 5/7 customer runs failed at proxy access-check because
  those customers' Apify plans did not include RESIDENTIAL proxy group access.

### 0.2.0 — 2026-06-10

- Force-residential proxy guard: `_resolve_proxy_config` now always injects the RESIDENTIAL group
  when `apifyProxyGroups` is missing, empty, or contains no RESIDENTIAL entry. Customers running
  without residential proxy were getting HTTP 403 from Bilasolur.is (datacenter IPs blocked).
- Fail-fast on proxy unavailable: raises `RuntimeError` with a clear message instead of silently
  falling back to direct routing.
- Updated `INPUT_SCHEMA.json`, `models.py`, and `README.md` to document that RESIDENTIAL is required.
- Added `test_proxy_guard.py` unit tests covering `_ensure_residential` permutations.

### 0.1.0 — 2026-06-05

- First cloud push (v0.1). Build SUCCEEDED. Cloud QA PASS: 5/5 rows, ISK currency, enrichment (engine\_power\_hp, engine\_size\_cc, color, first\_registration) all populated. Run ID: nskSNdhjnt6WbFaF6.
- Note: PPE pricing tier not yet activated — configure at https://console.apify.com/actors/WRbpgxC295cr8BnVt/publication/monetization

### 0.1.0 — 2026-05-15

- Initial scaffolded release.
