WedAPI
Internal dashboard

Connector Issues75 open

Auto-detected problems with crawl connectors. Each issue includes exact reproduce steps.

๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Bern CH] โ€” selector may be broken

First seen 8h ago ยท Last seen 14m ago ยท run 5689e213

What happened

Connector: search_discovery
Scope: wedding-venue / Bern / CH
Run ID: 5689e213-513f-425e-b1f3-8a585be9c940
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Bern&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Bern',
       country='CH',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Bern&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Bern CH] โ€” selector may be broken

First seen 8h ago ยท Last seen 14m ago ยท run 7b792902

What happened

Connector: weddyplace
Scope: wedding-venue / Bern / CH
Run ID: 7b792902-5407-48e1-a39f-ae7e2110a59c
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Bern&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Bern',
       country='CH',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Bern&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Zurich CH] โ€” selector may be broken

First seen 8h ago ยท Last seen 16m ago ยท run d799bb55

What happened

Connector: search_discovery
Scope: wedding-venue / Zurich / CH
Run ID: d799bb55-6044-46b1-b9c1-2cd7ea92a1ed
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Zurich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Zurich',
       country='CH',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Zurich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Zurich CH] โ€” selector may be broken

First seen 8h ago ยท Last seen 16m ago ยท run 17a6fbb2

What happened

Connector: weddyplace
Scope: wedding-venue / Zurich / CH
Run ID: 17a6fbb2-1330-4458-b71c-2fe96c9a82a0
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Zurich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Zurich',
       country='CH',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Zurich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Zurich CH] โ€” selector may be broken

First seen 8h ago ยท Last seen 17m ago ยท run f2073d4b

What happened

Connector: search_discovery
Scope: wedding-photographer / Zurich / CH
Run ID: f2073d4b-c7d8-41ac-b56b-de8def95ba78
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Zurich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Zurich',
       country='CH',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Zurich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Zurich CH] โ€” selector may be broken

First seen 8h ago ยท Last seen 17m ago ยท run 7ce47451

What happened

Connector: weddyplace
Scope: wedding-photographer / Zurich / CH
Run ID: 7ce47451-aef4-4195-9a67-f76d961fa096
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Zurich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Zurich',
       country='CH',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Zurich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-dj / Vienna AT] โ€” selector may be broken

First seen 8h ago ยท Last seen 19m ago ยท run a90cf8d8

What happened

Connector: search_discovery
Scope: wedding-dj / Vienna / AT
Run ID: a90cf8d8-cf25-4086-888e-630e5d25c414
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeits+dj+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeits+dj+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-dj / Vienna AT] โ€” selector may be broken

First seen 8h ago ยท Last seen 19m ago ยท run b9547c64

What happened

Connector: eventpeppers
Scope: wedding-dj / Vienna / AT
Run ID: b9547c64-2cfa-42ea-87cc-b2ee19344480
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-dj / Vienna AT] โ€” selector may be broken

First seen 8h ago ยท Last seen 19m ago ยท run 7ddea487

What happened

Connector: weddyplace
Scope: wedding-dj / Vienna / AT
Run ID: 7ddea487-9c8d-4778-acc2-e58095c45b93
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Salzburg AT] โ€” selector may be broken

First seen 8h ago ยท Last seen 34m ago ยท run 30c18187

What happened

Connector: search_discovery
Scope: wedding-venue / Salzburg / AT
Run ID: 30c18187-e492-49fe-90ad-ac1f7c17802a
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Salzburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Salzburg',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Salzburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Salzburg AT] โ€” selector may be broken

First seen 8h ago ยท Last seen 34m ago ยท run 52cbb1e1

What happened

Connector: weddyplace
Scope: wedding-venue / Salzburg / AT
Run ID: 52cbb1e1-5210-4122-a632-3364aa6b1306
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Salzburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Salzburg',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Salzburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Graz AT] โ€” selector may be broken

First seen 9h ago ยท Last seen 57m ago ยท run 382e6ad9

What happened

Connector: search_discovery
Scope: wedding-photographer / Graz / AT
Run ID: 382e6ad9-bd55-49a7-ab6b-1cdeec8a4738
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Graz&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Graz',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Graz&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Graz AT] โ€” selector may be broken

First seen 9h ago ยท Last seen 57m ago ยท run bf33276c

What happened

Connector: weddyplace
Scope: wedding-photographer / Graz / AT
Run ID: bf33276c-b65b-4685-8022-e9a2eab12903
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Graz&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Graz',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Graz&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-dj / Frankfurt DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 59m ago ยท run 87460478

What happened

Connector: search_discovery
Scope: wedding-dj / Frankfurt / DE
Run ID: 87460478-61ad-4ba0-8612-3679bbcf34d6
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeits+dj+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeits+dj+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-dj / Frankfurt DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 59m ago ยท run fceb14ff

What happened

Connector: eventpeppers
Scope: wedding-dj / Frankfurt / DE
Run ID: fceb14ff-bfd6-4501-8295-71069d6942dc
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-dj / Frankfurt DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 59m ago ยท run c8203283

What happened

Connector: weddyplace
Scope: wedding-dj / Frankfurt / DE
Run ID: c8203283-7934-4e57-853a-4f4dd188f418
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-dj / Cologne DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 22178ed2

What happened

Connector: search_discovery
Scope: wedding-dj / Cologne / DE
Run ID: 22178ed2-867b-4903-8c7d-3961434f942b
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeits+dj+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeits+dj+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-dj / Cologne DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 7e0299e4

What happened

Connector: eventpeppers
Scope: wedding-dj / Cologne / DE
Run ID: 7e0299e4-5394-465e-b399-6cd8a1d720ab
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-dj / Cologne DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run c304c832

What happened

Connector: weddyplace
Scope: wedding-dj / Cologne / DE
Run ID: c304c832-3637-4489-ad4a-de5f2f9821c6
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Vienna AT] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 6a7b1184

What happened

Connector: search_discovery
Scope: wedding-venue / Vienna / AT
Run ID: 6a7b1184-c0fb-4864-906d-2f5118849090
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Vienna AT] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run aec9c1d2

What happened

Connector: weddyplace
Scope: wedding-venue / Vienna / AT
Run ID: aec9c1d2-eef6-4a72-8760-0db741fe0334
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Vienna AT] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 2e36037c

What happened

Connector: search_discovery
Scope: wedding-photographer / Vienna / AT
Run ID: 2e36037c-5f26-46ba-93ae-57bf5145331a
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Vienna AT] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run bb24a819

What happened

Connector: weddyplace
Scope: wedding-photographer / Vienna / AT
Run ID: bb24a819-51f9-44d2-ae92-2689bfbe5425
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Vienna&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Vienna',
       country='AT',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Vienna&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Nuremberg DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 022872a9

What happened

Connector: search_discovery
Scope: wedding-venue / Nuremberg / DE
Run ID: 022872a9-97cd-48c3-8705-84cb7d9d3e89
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Nuremberg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Nuremberg',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Nuremberg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Nuremberg DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 70f9aa6e

What happened

Connector: weddyplace
Scope: wedding-venue / Nuremberg / DE
Run ID: 70f9aa6e-8cf7-4354-b667-ab4550c54f92
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Nuremberg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Nuremberg',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Nuremberg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐ŸŒ HTTP errorbavariawedding3ร— failed ยท 3 consecutive

HTTP error fetching bavariawedding [wedding-venue / Nuremberg DE]

First seen 9h ago ยท Last seen 1h ago ยท run b08f13cf

What happened

Connector: bavariawedding
Scope: wedding-venue / Nuremberg / DE
Run ID: b08f13cf-72cc-470b-b8df-11ad1855b7fd
Zero reason: http_errors: 1/1 pages failed
Pages fetched: 1
HTTP errors: 1
Vendor objects found by parser: 0
First URL attempted: https://www.bavariawedding.de/hochzeitslocations/nuremberg/
HTTP error: 404 on https://www.bavariawedding.de/hochzeitslocations/nuremberg/
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import bavariawedding
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = bavariawedding.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Nuremberg',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://www.bavariawedding.de/hochzeitslocations/nuremberg/', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: http_errors: 1/1 pages failed
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ“ธ Snapshot capturedView raw response โ†’
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Stuttgart DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 6e16283b

What happened

Connector: search_discovery
Scope: wedding-venue / Stuttgart / DE
Run ID: 6e16283b-07f3-4d66-85df-b0be859de485
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Stuttgart&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Stuttgart',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Stuttgart&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Stuttgart DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run ad3931c2

What happened

Connector: weddyplace
Scope: wedding-venue / Stuttgart / DE
Run ID: ad3931c2-c428-4535-ad20-8b1aac461c4a
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Stuttgart&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Stuttgart',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Stuttgart&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Frankfurt DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 0c2dfaa0

What happened

Connector: search_discovery
Scope: wedding-venue / Frankfurt / DE
Run ID: 0c2dfaa0-0c23-4573-8db8-107e3ea972b0
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Frankfurt DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 5e1e6a2c

What happened

Connector: weddyplace
Scope: wedding-venue / Frankfurt / DE
Run ID: 5e1e6a2c-09e3-4651-a992-1e8b9d6012d0
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Cologne DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run c11e9b38

What happened

Connector: search_discovery
Scope: wedding-venue / Cologne / DE
Run ID: c11e9b38-3432-49da-8402-78691ba31954
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Cologne DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 906ae4fa

What happened

Connector: weddyplace
Scope: wedding-venue / Cologne / DE
Run ID: 906ae4fa-045f-4444-8d43-a7174b7d38b1
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Nuremberg DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run 0cc32a28

What happened

Connector: search_discovery
Scope: wedding-photographer / Nuremberg / DE
Run ID: 0cc32a28-6f80-4050-9a67-64e966298ed0
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Nuremberg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Nuremberg',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Nuremberg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace3ร— failed ยท 3 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Nuremberg DE] โ€” selector may be broken

First seen 9h ago ยท Last seen 1h ago ยท run cea3d045

What happened

Connector: weddyplace
Scope: wedding-photographer / Nuremberg / DE
Run ID: cea3d045-6e17-4037-84b5-8e39d05c8db8
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Nuremberg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Nuremberg',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Nuremberg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐ŸŒ HTTP errorbavariawedding3ร— failed ยท 3 consecutive

HTTP error fetching bavariawedding [wedding-photographer / Nuremberg DE]

First seen 9h ago ยท Last seen 1h ago ยท run 9d795808

What happened

Connector: bavariawedding
Scope: wedding-photographer / Nuremberg / DE
Run ID: 9d795808-eb94-4789-950b-9bc79bcc6cc7
Zero reason: http_errors: 1/1 pages failed
Pages fetched: 1
HTTP errors: 1
Vendor objects found by parser: 0
First URL attempted: https://www.bavariawedding.de/hochzeitsfotografen/nuremberg/
HTTP error: 404 on https://www.bavariawedding.de/hochzeitsfotografen/nuremberg/
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import bavariawedding
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = bavariawedding.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Nuremberg',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://www.bavariawedding.de/hochzeitsfotografen/nuremberg/', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: http_errors: 1/1 pages failed
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ“ธ Snapshot capturedView raw response โ†’
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Stuttgart DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run c26b115b

What happened

Connector: search_discovery
Scope: wedding-photographer / Stuttgart / DE
Run ID: c26b115b-95e1-4ece-ab44-fd33a16e925a
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Stuttgart&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Stuttgart',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Stuttgart&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Stuttgart DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 709331db

What happened

Connector: weddyplace
Scope: wedding-photographer / Stuttgart / DE
Run ID: 709331db-e000-438c-96f5-1c19901bd156
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Stuttgart&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Stuttgart',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Stuttgart&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Frankfurt DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 6d214b62

What happened

Connector: search_discovery
Scope: wedding-photographer / Frankfurt / DE
Run ID: 6d214b62-3e1f-4d5d-938c-c63c4736cae6
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Frankfurt DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 9c7e4821

What happened

Connector: weddyplace
Scope: wedding-photographer / Frankfurt / DE
Run ID: 9c7e4821-7cc3-4982-85a8-228630b43cfa
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Frankfurt&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Frankfurt',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Frankfurt&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Cologne DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 00693be0

What happened

Connector: search_discovery
Scope: wedding-photographer / Cologne / DE
Run ID: 00693be0-326c-4d8b-8a0c-1dd7a6f73a8d
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Cologne DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run b81b88e0

What happened

Connector: weddyplace
Scope: wedding-photographer / Cologne / DE
Run ID: b81b88e0-70cf-404f-bb2e-1cc204f928df
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Cologne&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Cologne',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Cologne&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-band / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 682940ef

What happened

Connector: search_discovery
Scope: wedding-band / Hamburg / DE
Run ID: 682940ef-cd5c-4deb-84b1-c845cd0e3f07
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsband+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsband+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers

Parser extracted 0 vendor objects from eventpeppers [wedding-band / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run f941a23e

What happened

Connector: eventpeppers
Scope: wedding-band / Hamburg / DE
Run ID: f941a23e-d5af-4104-86cb-ccf45049fb82
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeitsband+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeitsband+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-band / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 31f678ed

What happened

Connector: weddyplace
Scope: wedding-band / Hamburg / DE
Run ID: 31f678ed-153e-4ce2-bb56-b42233f49702
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsband+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsband+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-band / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run f029ed46

What happened

Connector: search_discovery
Scope: wedding-band / Berlin / DE
Run ID: f029ed46-99c6-46ea-bcb9-a2942478a700
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsband+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsband+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers

Parser extracted 0 vendor objects from eventpeppers [wedding-band / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 4d5dedb4

What happened

Connector: eventpeppers
Scope: wedding-band / Berlin / DE
Run ID: 4d5dedb4-24f9-4908-a6a3-f8fad4e15ead
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeitsband+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeitsband+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-band / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 33e9729a

What happened

Connector: weddyplace
Scope: wedding-band / Berlin / DE
Run ID: 33e9729a-36a3-42b2-ab9a-bbf6980dcbde
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsband+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsband+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-band / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 1759c899

What happened

Connector: search_discovery
Scope: wedding-band / Munich / DE
Run ID: 1759c899-85ad-475e-a566-7dfdca3f20e9
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsband+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsband+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-band / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 00ca8bd0

What happened

Connector: eventpeppers
Scope: wedding-band / Munich / DE
Run ID: 00ca8bd0-f117-4f93-8925-ae24c0f1f27b
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeitsband+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeitsband+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-band / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run bcc8e8ec

What happened

Connector: weddyplace
Scope: wedding-band / Munich / DE
Run ID: bcc8e8ec-74eb-4df5-bfcf-ee1b4d7589a6
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsband+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsband+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐ŸŒ HTTP errorbavariawedding2ร— failed ยท 2 consecutive

HTTP error fetching bavariawedding [wedding-band / Munich DE]

First seen 10h ago ยท Last seen 10h ago ยท run f00ca77d

What happened

Connector: bavariawedding
Scope: wedding-band / Munich / DE
Run ID: f00ca77d-2b75-46e2-a5ba-494f151596d7
Zero reason: http_errors: 1/1 pages failed
Pages fetched: 1
HTTP errors: 1
Vendor objects found by parser: 0
First URL attempted: https://www.bavariawedding.de/djs-bands/munich/
HTTP error: 404 on https://www.bavariawedding.de/djs-bands/munich/
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import bavariawedding
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = bavariawedding.run_connector(
       db=db, job=job,
       category_slug='wedding-band',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://www.bavariawedding.de/djs-bands/munich/', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: http_errors: 1/1 pages failed
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ“ธ Snapshot capturedView raw response โ†’
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-dj / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run d10a823e

What happened

Connector: search_discovery
Scope: wedding-dj / Hamburg / DE
Run ID: d10a823e-9cf1-4da0-bcbf-e9d110d5753e
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeits+dj+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeits+dj+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-dj / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run e50e2398

What happened

Connector: eventpeppers
Scope: wedding-dj / Hamburg / DE
Run ID: e50e2398-3843-4e3b-8b7e-3f3be22d29d9
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-dj / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 3958a616

What happened

Connector: weddyplace
Scope: wedding-dj / Hamburg / DE
Run ID: 3958a616-2990-43ea-8b17-104733a0b967
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-dj / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run ccfb619c

What happened

Connector: search_discovery
Scope: wedding-dj / Berlin / DE
Run ID: ccfb619c-28e1-4ed5-abe8-d7f9848147cf
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeits+dj+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeits+dj+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-dj / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run d9f8d884

What happened

Connector: eventpeppers
Scope: wedding-dj / Berlin / DE
Run ID: d9f8d884-dd5a-4dac-bf51-45635af82cf6
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-dj / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 7e12b080

What happened

Connector: weddyplace
Scope: wedding-dj / Berlin / DE
Run ID: 7e12b080-dc10-4ed6-9571-b693577d3104
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-dj / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 39480da2

What happened

Connector: search_discovery
Scope: wedding-dj / Munich / DE
Run ID: 39480da2-22e7-4812-a223-5a6e544005b7
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeits+dj+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeits+dj+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokeneventpeppers2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from eventpeppers [wedding-dj / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 4057b24e

What happened

Connector: eventpeppers
Scope: wedding-dj / Munich / DE
Run ID: 4057b24e-fcf6-435e-946e-b80765b2a41a
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import eventpeppers
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = eventpeppers.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aeventpeppers.com%2Fde+hochzeits+dj+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-dj / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 03493662

What happened

Connector: weddyplace
Scope: wedding-dj / Munich / DE
Run ID: 03493662-45ca-4305-80ee-dff3644ad388
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeits+dj+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐ŸŒ HTTP errorbavariawedding2ร— failed ยท 2 consecutive

HTTP error fetching bavariawedding [wedding-dj / Munich DE]

First seen 10h ago ยท Last seen 10h ago ยท run 00fb5b2a

What happened

Connector: bavariawedding
Scope: wedding-dj / Munich / DE
Run ID: 00fb5b2a-c105-42f4-b89a-abb4274dfa24
Zero reason: http_errors: 1/1 pages failed
Pages fetched: 1
HTTP errors: 1
Vendor objects found by parser: 0
First URL attempted: https://www.bavariawedding.de/djs-bands/munich/
HTTP error: 404 on https://www.bavariawedding.de/djs-bands/munich/
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import bavariawedding
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = bavariawedding.run_connector(
       db=db, job=job,
       category_slug='wedding-dj',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://www.bavariawedding.de/djs-bands/munich/', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: http_errors: 1/1 pages failed
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ“ธ Snapshot capturedView raw response โ†’
๐Ÿ”ง Selector brokensearch_discovery2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run a44fbe23

What happened

Connector: search_discovery
Scope: wedding-venue / Hamburg / DE
Run ID: a44fbe23-6835-40cc-bf1b-8529cef7892b
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace2ร— failed ยท 2 consecutive

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 6b8d1fea

What happened

Connector: weddyplace
Scope: wedding-venue / Hamburg / DE
Run ID: 6b8d1fea-056e-45bf-8df0-abd1e191ced8
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 1ed47d28

What happened

Connector: search_discovery
Scope: wedding-venue / Berlin / DE
Run ID: 1ed47d28-b269-4950-a1b1-7364407aef59
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run a1182268

What happened

Connector: weddyplace
Scope: wedding-venue / Berlin / DE
Run ID: a1182268-2287-4ab1-93da-2628c0874296
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-venue / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 1cede84c

What happened

Connector: search_discovery
Scope: wedding-venue / Munich / DE
Run ID: 1cede84c-94e1-487e-8ce9-8684e763dd3e
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitslocation+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitslocation+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-venue / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run a159b317

What happened

Connector: weddyplace
Scope: wedding-venue / Munich / DE
Run ID: a159b317-0a0d-430b-8f96-82ebdec6621d
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitslocation+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐ŸŒ HTTP errorbavariawedding

HTTP error fetching bavariawedding [wedding-venue / Munich DE]

First seen 10h ago ยท Last seen 10h ago ยท run d5d0c0ae

What happened

Connector: bavariawedding
Scope: wedding-venue / Munich / DE
Run ID: d5d0c0ae-e97e-4d6c-9a14-6ac17cfb6501
Zero reason: http_errors: 1/1 pages failed
Pages fetched: 1
HTTP errors: 1
Vendor objects found by parser: 0
First URL attempted: https://www.bavariawedding.de/hochzeitslocations/munich/
HTTP error: 404 on https://www.bavariawedding.de/hochzeitslocations/munich/
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import bavariawedding
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = bavariawedding.run_connector(
       db=db, job=job,
       category_slug='wedding-venue',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://www.bavariawedding.de/hochzeitslocations/munich/', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: http_errors: 1/1 pages failed
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ“ธ Snapshot capturedView raw response โ†’
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 4af9ccd1

What happened

Connector: search_discovery
Scope: wedding-photographer / Hamburg / DE
Run ID: 4af9ccd1-2818-48bc-babd-ce34079375ea
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Hamburg DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run c1e92649

What happened

Connector: weddyplace
Scope: wedding-photographer / Hamburg / DE
Run ID: c1e92649-6fc6-4c7c-a392-dcad1534a439
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Hamburg&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Hamburg',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Hamburg&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run d37c112c

What happened

Connector: search_discovery
Scope: wedding-photographer / Berlin / DE
Run ID: d37c112c-974b-4bc4-ba11-7283bcd2eb29
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Berlin DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run b2b6025a

What happened

Connector: weddyplace
Scope: wedding-photographer / Berlin / DE
Run ID: b2b6025a-eef4-45c1-bf39-10b8462c38e3
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Berlin&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Berlin',
       country='DE',
       state=None,
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Berlin&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokensearch_discovery

Parser extracted 0 vendor objects from search_discovery [wedding-photographer / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run f345136d

What happened

Connector: search_discovery
Scope: wedding-photographer / Munich / DE
Run ID: f345136d-0324-4dd9-a91c-06a553658016
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import search_discovery
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = search_discovery.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=hochzeitsfotograf+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ”ง Selector brokenweddyplace

Parser extracted 0 vendor objects from weddyplace [wedding-photographer / Munich DE] โ€” selector may be broken

First seen 10h ago ยท Last seen 10h ago ยท run 8cb3570d

What happened

Connector: weddyplace
Scope: wedding-photographer / Munich / DE
Run ID: 8cb3570d-d70e-44f2-9a19-55580638ce8a
Zero reason: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
Pages fetched: 1
HTTP errors: 0
Vendor objects found by parser: 0
First URL attempted: https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Munich&kl=de-de
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import weddyplace
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = weddyplace.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://html.duckduckgo.com/html/?q=site%3Aweddyplace.com%2Fde+hochzeitsfotograf+Munich&kl=de-de', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: no_vendor_objects_extracted: fetched 1 pages, parser found 0 objects
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐ŸŒ HTTP errorbavariawedding

HTTP error fetching bavariawedding [wedding-photographer / Munich DE]

First seen 10h ago ยท Last seen 10h ago ยท run 4a5143b1

What happened

Connector: bavariawedding
Scope: wedding-photographer / Munich / DE
Run ID: 4a5143b1-9e4a-4030-b938-16e136f1ed05
Zero reason: http_errors: 1/1 pages failed
Pages fetched: 1
HTTP errors: 1
Vendor objects found by parser: 0
First URL attempted: https://www.bavariawedding.de/hochzeitsfotografen/munich/
HTTP error: 404 on https://www.bavariawedding.de/hochzeitsfotografen/munich/
๐Ÿ“‹ How to reproduce & fix this issue
## How to reproduce

1. Start the backend:
   ```
   docker compose up backend postgres redis -d
   ```

2. Open a Python shell:
   ```
   docker compose exec backend python
   ```

3. Run the connector directly:
   ```python
   from app.core.database import SessionLocal
   from app.services.connectors import bavariawedding
   from app.models.models import IngestionJob
   import uuid
   db = SessionLocal()
   job = IngestionJob(id=str(uuid.uuid4()), connector_name='debug', status='running')
   db.add(job); db.commit()
   result = bavariawedding.run_connector(
       db=db, job=job,
       category_slug='wedding-photographer',
       city='Munich',
       country='DE',
       state='Bavaria',
       max_pages=1,
   )
   print(result)
   ```

4. Or fetch the raw page directly:
   ```python
   import httpx
   headers = {'User-Agent': 'Mozilla/5.0 (compatible; WedAPI-Crawler/1.0)'}
   r = httpx.get('https://www.bavariawedding.de/hochzeitsfotografen/munich/', headers=headers, follow_redirects=True, timeout=15)
   print(r.status_code, len(r.text))
   # Inspect r.text to check if site structure changed
   ```

## What to check
- Zero reason recorded: http_errors: 1/1 pages failed
- Compare the current HTML/JSON structure against the connector's selectors
- Check the snapshot attached to this issue (if available) for the actual response
- Update the connector's CSS selectors, URL patterns, or JSON paths accordingly
- Re-run the scope to verify: `make crawl` or use the Admin โ†’ Crawl Runs โ†’ Run now button
๐Ÿ“ธ Snapshot capturedView raw response โ†’