WedAPI
Internal dashboard

Connector Issues75 open

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

๐Ÿ”ง Selector brokensearch_discovery

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

First seen 6h ago ยท Last seen 6h ago ยท run 0395e34b

What happened

Connector: search_discovery
Scope: wedding-venue / Bern / CH
Run ID: 0395e34b-d766-4382-8bad-e233e166a570
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 brokenweddyplace

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

First seen 6h ago ยท Last seen 6h ago ยท run dc2d9bba

What happened

Connector: weddyplace
Scope: wedding-venue / Bern / CH
Run ID: dc2d9bba-f3bb-4f56-88e9-f228dc035c4d
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_discovery

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

First seen 6h ago ยท Last seen 6h ago ยท run bb6da3d5

What happened

Connector: search_discovery
Scope: wedding-venue / Zurich / CH
Run ID: bb6da3d5-4273-4596-8066-72df27b124d6
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 brokenweddyplace

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

First seen 6h ago ยท Last seen 6h ago ยท run 209b9450

What happened

Connector: weddyplace
Scope: wedding-venue / Zurich / CH
Run ID: 209b9450-5735-4a4a-a4c3-6b8770efc848
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_discovery

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

First seen 6h ago ยท Last seen 6h ago ยท run 27b0d394

What happened

Connector: search_discovery
Scope: wedding-photographer / Zurich / CH
Run ID: 27b0d394-3153-4a29-bd04-90e2c4cb8158
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 brokenweddyplace

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

First seen 6h ago ยท Last seen 6h ago ยท run 5ccc8f3b

What happened

Connector: weddyplace
Scope: wedding-photographer / Zurich / CH
Run ID: 5ccc8f3b-2460-476a-b4bf-61e08bb00a6a
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_discovery

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

First seen 6h ago ยท Last seen 6h ago ยท run 9779d371

What happened

Connector: search_discovery
Scope: wedding-dj / Vienna / AT
Run ID: 9779d371-c596-4195-8472-586cc9e1e9f6
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 brokeneventpeppers

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

First seen 6h ago ยท Last seen 6h ago ยท run 55e83a3b

What happened

Connector: eventpeppers
Scope: wedding-dj / Vienna / AT
Run ID: 55e83a3b-4419-439b-a915-cd833074fe80
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 brokenweddyplace

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

First seen 6h ago ยท Last seen 6h ago ยท run 6e7b9223

What happened

Connector: weddyplace
Scope: wedding-dj / Vienna / AT
Run ID: 6e7b9223-7fa1-4032-bf15-48ef5b67b71a
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_discovery

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

First seen 6h ago ยท Last seen 6h ago ยท run 450cba60

What happened

Connector: search_discovery
Scope: wedding-venue / Salzburg / AT
Run ID: 450cba60-43f2-4b61-ab67-61cfbe366859
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 brokenweddyplace

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

First seen 6h ago ยท Last seen 6h ago ยท run f20e1a72

What happened

Connector: weddyplace
Scope: wedding-venue / Salzburg / AT
Run ID: f20e1a72-bcba-4ddf-bca5-6571ce86e5e6
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run ebb8f96c

What happened

Connector: search_discovery
Scope: wedding-photographer / Graz / AT
Run ID: ebb8f96c-7636-4814-b3e0-d897c692b9c1
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 3da732c9

What happened

Connector: weddyplace
Scope: wedding-photographer / Graz / AT
Run ID: 3da732c9-ac1c-4973-b836-1b09ecfa214c
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run e8cccf66

What happened

Connector: search_discovery
Scope: wedding-dj / Frankfurt / DE
Run ID: e8cccf66-5eea-4d0f-b5ad-0455137afac5
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 brokeneventpeppers2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 7e6a84f3

What happened

Connector: eventpeppers
Scope: wedding-dj / Frankfurt / DE
Run ID: 7e6a84f3-c593-4cef-b3c5-6294451dc39a
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 890d0f27

What happened

Connector: weddyplace
Scope: wedding-dj / Frankfurt / DE
Run ID: 890d0f27-50e0-4bf4-848d-950f071434c2
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 2226fca6

What happened

Connector: search_discovery
Scope: wedding-dj / Cologne / DE
Run ID: 2226fca6-d075-421e-8786-3d764888bc3a
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 brokeneventpeppers2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 1d1ed6ed

What happened

Connector: eventpeppers
Scope: wedding-dj / Cologne / DE
Run ID: 1d1ed6ed-41db-4d23-a136-587e391e7b7b
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run ea43c39e

What happened

Connector: weddyplace
Scope: wedding-dj / Cologne / DE
Run ID: ea43c39e-99d5-4579-8841-1bee2abbcbfb
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 637869f1

What happened

Connector: search_discovery
Scope: wedding-venue / Vienna / AT
Run ID: 637869f1-9661-44c6-bfc7-8549a1bd7270
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run e8061569

What happened

Connector: weddyplace
Scope: wedding-venue / Vienna / AT
Run ID: e8061569-d1b3-4fee-93bf-0dd33e8943a3
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 96e6e0e0

What happened

Connector: search_discovery
Scope: wedding-photographer / Vienna / AT
Run ID: 96e6e0e0-8bc6-43d7-adee-3e35719c9a1b
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 4b036455

What happened

Connector: weddyplace
Scope: wedding-photographer / Vienna / AT
Run ID: 4b036455-0bd0-499d-bbac-500e8e5b69c1
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 98ca1733

What happened

Connector: search_discovery
Scope: wedding-venue / Nuremberg / DE
Run ID: 98ca1733-5ba3-4cad-8b42-03155ef50c64
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 9714bf37

What happened

Connector: weddyplace
Scope: wedding-venue / Nuremberg / DE
Run ID: 9714bf37-d464-4bee-9b9e-41d9495a6a5d
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 errorbavariawedding2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 70c50238

What happened

Connector: bavariawedding
Scope: wedding-venue / Nuremberg / DE
Run ID: 70c50238-9709-4f68-8620-d7b047b2c8eb
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 8dbdb536

What happened

Connector: search_discovery
Scope: wedding-venue / Stuttgart / DE
Run ID: 8dbdb536-641d-480a-942d-32c4a7976039
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 9ed19973

What happened

Connector: weddyplace
Scope: wedding-venue / Stuttgart / DE
Run ID: 9ed19973-3009-4861-a37a-b159fd2144f9
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 2a3fa23e

What happened

Connector: search_discovery
Scope: wedding-venue / Frankfurt / DE
Run ID: 2a3fa23e-4632-4eeb-b7f7-4cf1c0b25c7b
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 9fea5959

What happened

Connector: weddyplace
Scope: wedding-venue / Frankfurt / DE
Run ID: 9fea5959-d41a-4175-88f3-ef2caf0a48a0
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 0b8e5741

What happened

Connector: search_discovery
Scope: wedding-venue / Cologne / DE
Run ID: 0b8e5741-4c03-417e-9f0a-359be053eb5c
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 6957cb0b

What happened

Connector: weddyplace
Scope: wedding-venue / Cologne / DE
Run ID: 6957cb0b-b3e1-4f18-a6f8-f3bc7d65bf1b
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_discovery2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 0ce97d2c

What happened

Connector: search_discovery
Scope: wedding-photographer / Nuremberg / DE
Run ID: 0ce97d2c-728b-44df-a724-27c4ca2a5f7a
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 brokenweddyplace2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 275a0707

What happened

Connector: weddyplace
Scope: wedding-photographer / Nuremberg / DE
Run ID: 275a0707-bbef-4bde-978d-75c39977fb06
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 errorbavariawedding2ร— failed ยท 2 consecutive

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

First seen 7h ago ยท Last seen 7h ago ยท run 70074b89

What happened

Connector: bavariawedding
Scope: wedding-photographer / Nuremberg / DE
Run ID: 70074b89-7f27-4ddf-a8bc-ad21647f7d10
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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 8h ago ยท Last seen 8h 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 โ†’