chore: add SEO audit skill, EMEX migration plan, VIN test harness, and knowledge docs

- Add .agents/skills/seo-audit + .claude/skills/seo-audit skill
- Add .claude/plans/emex-mysql-to-postgres.md migration plan
- Add ralph-vin-test/ VIN decode test harness with progress tracking
- Add knowledge.md, postalMail.txt, ralpRapor.md reference docs
- Update scripts screenshots (quickgroups-tree, vehicles-page)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Sase Dev
2026-03-06 19:52:45 +00:00
parent 19ccaa7b68
commit 24c8f066d5
17 changed files with 9045 additions and 1 deletions

View File

@@ -0,0 +1,411 @@
---
name: seo-audit
description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," or "SEO health check." For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup.
metadata:
version: 1.0.0
---
# SEO Audit
You are an expert in search engine optimization. Your goal is to identify SEO issues and provide actionable recommendations to improve organic search performance.
## Initial Assessment
**Check for product marketing context first:**
If `.claude/product-marketing-context.md` exists, read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Before auditing, understand:
1. **Site Context**
- What type of site? (SaaS, e-commerce, blog, etc.)
- What's the primary business goal for SEO?
- What keywords/topics are priorities?
2. **Current State**
- Any known issues or concerns?
- Current organic traffic level?
- Recent changes or migrations?
3. **Scope**
- Full site audit or specific pages?
- Technical + on-page, or one focus area?
- Access to Search Console / analytics?
---
## Audit Framework
### ⚠️ Important: Schema Markup Detection Limitation
**`web_fetch` and `curl` cannot reliably detect structured data / schema markup.**
Many CMS plugins (AIOSEO, Yoast, RankMath) inject JSON-LD via client-side JavaScript — it won't appear in static HTML or `web_fetch` output (which strips `<script>` tags during conversion).
**To accurately check for schema markup, use one of these methods:**
1. **Browser tool** — render the page and run: `document.querySelectorAll('script[type="application/ld+json"]')`
2. **Google Rich Results Test** — https://search.google.com/test/rich-results
3. **Screaming Frog export** — if the client provides one, use it (SF renders JavaScript)
**Never report "no schema found" based solely on `web_fetch` or `curl`.** This has led to false audit findings in production.
### Priority Order
1. **Crawlability & Indexation** (can Google find and index it?)
2. **Technical Foundations** (is the site fast and functional?)
3. **On-Page Optimization** (is content optimized?)
4. **Content Quality** (does it deserve to rank?)
5. **Authority & Links** (does it have credibility?)
---
## Technical SEO Audit
### Crawlability
**Robots.txt**
- Check for unintentional blocks
- Verify important pages allowed
- Check sitemap reference
**XML Sitemap**
- Exists and accessible
- Submitted to Search Console
- Contains only canonical, indexable URLs
- Updated regularly
- Proper formatting
**Site Architecture**
- Important pages within 3 clicks of homepage
- Logical hierarchy
- Internal linking structure
- No orphan pages
**Crawl Budget Issues** (for large sites)
- Parameterized URLs under control
- Faceted navigation handled properly
- Infinite scroll with pagination fallback
- Session IDs not in URLs
### Indexation
**Index Status**
- site:domain.com check
- Search Console coverage report
- Compare indexed vs. expected
**Indexation Issues**
- Noindex tags on important pages
- Canonicals pointing wrong direction
- Redirect chains/loops
- Soft 404s
- Duplicate content without canonicals
**Canonicalization**
- All pages have canonical tags
- Self-referencing canonicals on unique pages
- HTTP → HTTPS canonicals
- www vs. non-www consistency
- Trailing slash consistency
### Site Speed & Core Web Vitals
**Core Web Vitals**
- LCP (Largest Contentful Paint): < 2.5s
- INP (Interaction to Next Paint): < 200ms
- CLS (Cumulative Layout Shift): < 0.1
**Speed Factors**
- Server response time (TTFB)
- Image optimization
- JavaScript execution
- CSS delivery
- Caching headers
- CDN usage
- Font loading
**Tools**
- PageSpeed Insights
- WebPageTest
- Chrome DevTools
- Search Console Core Web Vitals report
### Mobile-Friendliness
- Responsive design (not separate m. site)
- Tap target sizes
- Viewport configured
- No horizontal scroll
- Same content as desktop
- Mobile-first indexing readiness
### Security & HTTPS
- HTTPS across entire site
- Valid SSL certificate
- No mixed content
- HTTP → HTTPS redirects
- HSTS header (bonus)
### URL Structure
- Readable, descriptive URLs
- Keywords in URLs where natural
- Consistent structure
- No unnecessary parameters
- Lowercase and hyphen-separated
---
## On-Page SEO Audit
### Title Tags
**Check for:**
- Unique titles for each page
- Primary keyword near beginning
- 50-60 characters (visible in SERP)
- Compelling and click-worthy
- Brand name placement (end, usually)
**Common issues:**
- Duplicate titles
- Too long (truncated)
- Too short (wasted opportunity)
- Keyword stuffing
- Missing entirely
### Meta Descriptions
**Check for:**
- Unique descriptions per page
- 150-160 characters
- Includes primary keyword
- Clear value proposition
- Call to action
**Common issues:**
- Duplicate descriptions
- Auto-generated garbage
- Too long/short
- No compelling reason to click
### Heading Structure
**Check for:**
- One H1 per page
- H1 contains primary keyword
- Logical hierarchy (H1 → H2 → H3)
- Headings describe content
- Not just for styling
**Common issues:**
- Multiple H1s
- Skip levels (H1 → H3)
- Headings used for styling only
- No H1 on page
### Content Optimization
**Primary Page Content**
- Keyword in first 100 words
- Related keywords naturally used
- Sufficient depth/length for topic
- Answers search intent
- Better than competitors
**Thin Content Issues**
- Pages with little unique content
- Tag/category pages with no value
- Doorway pages
- Duplicate or near-duplicate content
### Image Optimization
**Check for:**
- Descriptive file names
- Alt text on all images
- Alt text describes image
- Compressed file sizes
- Modern formats (WebP)
- Lazy loading implemented
- Responsive images
### Internal Linking
**Check for:**
- Important pages well-linked
- Descriptive anchor text
- Logical link relationships
- No broken internal links
- Reasonable link count per page
**Common issues:**
- Orphan pages (no internal links)
- Over-optimized anchor text
- Important pages buried
- Excessive footer/sidebar links
### Keyword Targeting
**Per Page**
- Clear primary keyword target
- Title, H1, URL aligned
- Content satisfies search intent
- Not competing with other pages (cannibalization)
**Site-Wide**
- Keyword mapping document
- No major gaps in coverage
- No keyword cannibalization
- Logical topical clusters
---
## Content Quality Assessment
### E-E-A-T Signals
**Experience**
- First-hand experience demonstrated
- Original insights/data
- Real examples and case studies
**Expertise**
- Author credentials visible
- Accurate, detailed information
- Properly sourced claims
**Authoritativeness**
- Recognized in the space
- Cited by others
- Industry credentials
**Trustworthiness**
- Accurate information
- Transparent about business
- Contact information available
- Privacy policy, terms
- Secure site (HTTPS)
### Content Depth
- Comprehensive coverage of topic
- Answers follow-up questions
- Better than top-ranking competitors
- Updated and current
### User Engagement Signals
- Time on page
- Bounce rate in context
- Pages per session
- Return visits
---
## Common Issues by Site Type
### SaaS/Product Sites
- Product pages lack content depth
- Blog not integrated with product pages
- Missing comparison/alternative pages
- Feature pages thin on content
- No glossary/educational content
### E-commerce
- Thin category pages
- Duplicate product descriptions
- Missing product schema
- Faceted navigation creating duplicates
- Out-of-stock pages mishandled
### Content/Blog Sites
- Outdated content not refreshed
- Keyword cannibalization
- No topical clustering
- Poor internal linking
- Missing author pages
### Local Business
- Inconsistent NAP
- Missing local schema
- No Google Business Profile optimization
- Missing location pages
- No local content
---
## Output Format
### Audit Report Structure
**Executive Summary**
- Overall health assessment
- Top 3-5 priority issues
- Quick wins identified
**Technical SEO Findings**
For each issue:
- **Issue**: What's wrong
- **Impact**: SEO impact (High/Medium/Low)
- **Evidence**: How you found it
- **Fix**: Specific recommendation
- **Priority**: 1-5 or High/Medium/Low
**On-Page SEO Findings**
Same format as above
**Content Findings**
Same format as above
**Prioritized Action Plan**
1. Critical fixes (blocking indexation/ranking)
2. High-impact improvements
3. Quick wins (easy, immediate benefit)
4. Long-term recommendations
---
## References
- [AI Writing Detection](references/ai-writing-detection.md): Common AI writing patterns to avoid (em dashes, overused phrases, filler words)
- For AI search optimization (AEO, GEO, LLMO, AI Overviews), see the **ai-seo** skill
---
## Tools Referenced
**Free Tools**
- Google Search Console (essential)
- Google PageSpeed Insights
- Bing Webmaster Tools
- Rich Results Test (**use this for schema validation — it renders JavaScript**)
- Mobile-Friendly Test
- Schema Validator
> **Note on schema detection:** `web_fetch` strips `<script>` tags (including JSON-LD) and cannot detect JS-injected schema. Always use the browser tool, Rich Results Test, or Screaming Frog for schema checks. See the warning at the top of the Audit Framework section.
**Paid Tools** (if available)
- Screaming Frog
- Ahrefs / Semrush
- Sitebulb
- ContentKing
---
## Task-Specific Questions
1. What pages/keywords matter most?
2. Do you have Search Console access?
3. Any recent changes or migrations?
4. Who are your top organic competitors?
5. What's your current organic traffic baseline?
---
## Related Skills
- **ai-seo**: For optimizing content for AI search engines (AEO, GEO, LLMO)
- **programmatic-seo**: For building SEO pages at scale
- **schema-markup**: For implementing structured data
- **page-cro**: For optimizing pages for conversion (not just ranking)
- **analytics-tracking**: For measuring SEO performance

View File

@@ -0,0 +1,200 @@
# AI Writing Detection
Words, phrases, and punctuation patterns commonly associated with AI-generated text. Avoid these to ensure writing sounds natural and human.
Sources: Grammarly (2025), Microsoft 365 Life Hacks (2025), GPTHuman (2025), Walter Writes (2025), Textero (2025), Plagiarism Today (2025), Rolling Stone (2025), MDPI Blog (2025)
---
## Contents
- Em Dashes: The Primary AI Tell
- Overused Verbs
- Overused Adjectives
- Overused Transitions and Connectors
- Phrases That Signal AI Writing (Opening Phrases, Transitional Phrases, Concluding Phrases, Structural Patterns)
- Filler Words and Empty Intensifiers
- Academic-Specific AI Tells
- How to Self-Check
## Em Dashes: The Primary AI Tell
**The em dash (—) has become one of the most reliable markers of AI-generated content.**
Em dashes are longer than hyphens (-) and are used for emphasis, interruptions, or parenthetical information. While they have legitimate uses in writing, AI models drastically overuse them.
### Why Em Dashes Signal AI Writing
- AI models were trained on edited books, academic papers, and style guides where em dashes appear frequently
- AI uses em dashes as a shortcut for sentence variety instead of commas, colons, or parentheses
- Most human writers rarely use em dashes because they don't exist as a standard keyboard key
- The overuse is so consistent that it has become the unofficial signature of ChatGPT writing
### What To Do Instead
| Instead of | Use |
|------------|-----|
| The results—which were surprising—showed... | The results, which were surprising, showed... |
| This approach—unlike traditional methods—allows... | This approach, unlike traditional methods, allows... |
| The study found—as expected—that... | The study found, as expected, that... |
| Communication skills—both written and verbal—are essential | Communication skills (both written and verbal) are essential |
### Guidelines
- Use commas for most parenthetical information
- Use colons to introduce explanations or lists
- Use parentheses for supplementary information
- Reserve em dashes for rare, deliberate emphasis only
- If you find yourself using more than one em dash per page, revise
---
## Overused Verbs
| Avoid | Use Instead |
|-------|-------------|
| delve (into) | explore, examine, investigate, look at |
| leverage | use, apply, draw on |
| optimise | improve, refine, enhance |
| utilise | use |
| facilitate | help, enable, support |
| foster | encourage, support, develop, nurture |
| bolster | strengthen, support, reinforce |
| underscore | emphasise, highlight, stress |
| unveil | reveal, show, introduce, present |
| navigate | manage, handle, work through |
| streamline | simplify, make more efficient |
| enhance | improve, strengthen |
| endeavour | try, attempt, effort |
| ascertain | find out, determine, establish |
| elucidate | explain, clarify, make clear |
---
## Overused Adjectives
| Avoid | Use Instead |
|-------|-------------|
| robust | strong, reliable, thorough, solid |
| comprehensive | complete, thorough, full, detailed |
| pivotal | key, critical, central, important |
| crucial | important, key, essential, critical |
| vital | important, essential, necessary |
| transformative | significant, important, major |
| cutting-edge | new, advanced, recent, modern |
| groundbreaking | new, original, significant |
| innovative | new, original, creative |
| seamless | smooth, easy, effortless |
| intricate | complex, detailed, complicated |
| nuanced | subtle, complex, detailed |
| multifaceted | complex, varied, diverse |
| holistic | complete, whole, comprehensive |
---
## Overused Transitions and Connectors
| Avoid | Use Instead |
|-------|-------------|
| furthermore | also, in addition, and |
| moreover | also, and, besides |
| notwithstanding | despite, even so, still |
| that being said | however, but, still |
| at its core | essentially, fundamentally, basically |
| to put it simply | in short, simply put |
| it is worth noting that | note that, importantly |
| in the realm of | in, within, regarding |
| in the landscape of | in, within |
| in today's [anything] | currently, now, today |
---
## Phrases That Signal AI Writing
### Opening Phrases to Avoid
- "In today's fast-paced world..."
- "In today's digital age..."
- "In an era of..."
- "In the ever-evolving landscape of..."
- "In the realm of..."
- "It's important to note that..."
- "Let's delve into..."
- "Imagine a world where..."
### Transitional Phrases to Avoid
- "That being said..."
- "With that in mind..."
- "It's worth mentioning that..."
- "At its core..."
- "To put it simply..."
- "In essence..."
- "This begs the question..."
### Concluding Phrases to Avoid
- "In conclusion..."
- "To sum up..."
- "By [doing X], you can [achieve Y]..."
- "In the final analysis..."
- "All things considered..."
- "At the end of the day..."
### Structural Patterns to Avoid
- "Whether you're a [X], [Y], or [Z]..." (listing three examples after "whether")
- "It's not just [X], it's also [Y]..."
- "Think of [X] as [elaborate metaphor]..."
- Starting sentences with "By" followed by a gerund: "By understanding X, you can Y..."
---
## Filler Words and Empty Intensifiers
These words often add nothing to meaning. Remove them or find specific alternatives:
- absolutely
- actually
- basically
- certainly
- clearly
- definitely
- essentially
- extremely
- fundamentally
- incredibly
- interestingly
- naturally
- obviously
- quite
- really
- significantly
- simply
- surely
- truly
- ultimately
- undoubtedly
- very
---
## Academic-Specific AI Tells
| Avoid | Use Instead |
|-------|-------------|
| shed light on | clarify, explain, reveal |
| pave the way for | enable, allow, make possible |
| a myriad of | many, numerous, various |
| a plethora of | many, numerous, several |
| paramount | very important, essential, critical |
| pertaining to | about, regarding, concerning |
| prior to | before |
| subsequent to | after |
| in light of | because of, given, considering |
| with respect to | about, regarding, for |
| in terms of | regarding, for, about |
| the fact that | that (or rewrite sentence) |
---
## How to Self-Check
1. Read your text aloud. If phrases sound unnatural in speech, revise them
2. Ask: "Would I say this in a conversation with a colleague?"
3. Check for repetitive sentence structures
4. Look for clusters of the words listed above
5. Ensure varied sentence lengths (not all similar length)
6. Verify each intensifier adds genuine meaning

View File

@@ -0,0 +1,183 @@
# EMEX MySQL → PostgreSQL Migration Plan
## Durum
- Kaynak: `/home/s/scr/sase/emexae/emex_db_backup_20260302_193549.sql.gz` (3.6 GB, MariaDB 11.4.4)
- Hedef: `emex` adında yeni PostgreSQL database (`sase-postgres` container)
- Amaç: Ham veriyi PostgreSQL'e taşı → sonra marka marka SASE DB'ye entegre et
## MySQL Dump Yapısı
### Import edilecek tablolar (gerçek veri)
| Tablo | Tahmini Satır | İçerik |
|-------|---------------|--------|
| `catalogs` | ~2,471 | Marka/katalog tanımları (Renault, Fiat, BMW, Ford...) |
| `vehicles` | ~68,000 | Araç konfigürasyonları (model, motor, yıl, ssd) |
| `wizard_parameters` | bilinmiyor | VIN kimlik sihirbazı parametreleri |
| `part_groups` | **~22,000,000** | Parça kategorisi ağacı (nested set) |
| `parts` | büyük | Parça kataloğu (OEM no, isim, açıklama) |
| `part_numbers` | büyük | OEM numaraları |
| `vehicle_parts` | büyük | Araç ↔ parça uyum tablosu |
| `vehicle_groups` | büyük | Araç ↔ grup ilişkisi |
| `part_images` | bilinmiyor | Parça resim URL'leri |
### SKIP edilecek tablolar (scraping altyapısı, gereksiz)
- `api_cache` — HTTP cache, gereksiz
- `audit_log` — 1.9M satır değişiklik logu, gereksiz
- `scrape_queue` — iç job kuyruğu
- `scrape_queue_v2` — iç job kuyruğu
- `scrape_sessions` — iç scrape oturumları
- `model_progress` — iç scrape ilerleme takibi
### Özel durum: GENERATED COLUMN
`parts.part_number_clean` → MySQL GENERATED ALWAYS AS STORED kolon.
pgloader bunu otomatik olarak materialized regular column'a çevirir (değerleri MySQL'den okuyarak insert eder). Sorun yok.
## Araçlar
- **pgloader**: MySQL → PostgreSQL live migration tool. `sudo apt-get install pgloader` ile kurulacak.
- **MariaDB 11.4 Docker container** (geçici): Dump önce buraya import edilecek, ardından pgloader canlı okuyacak.
- **Port**: postal-mariadb zaten 3306'yı kullanıyor → emex-mariadb **3307** portunda çalışacak.
## Adım Adım Plan
### Adım 1 — pgloader kur
```bash
sudo apt-get update && sudo apt-get install -y pgloader
pgloader --version
```
### Adım 2 — Geçici MariaDB container başlat (port 3307)
```bash
docker run -d \
--name emex-mariadb-import \
-p 127.0.0.1:3307:3306 \
-e MYSQL_ROOT_PASSWORD=emex_import_2026 \
-e MYSQL_DATABASE=emex \
--tmpfs /tmp \
mariadb:11.4 \
--skip-log-bin \
--innodb-buffer-pool-size=2G \
--max-allowed-packet=512M \
--net-read-timeout=600 \
--net-write-timeout=600
```
- `--skip-log-bin`: binary log kapalı → %30 daha hızlı import
- `--innodb-buffer-pool-size=2G`: büyük tabloları hızlandırır
### Adım 3 — MariaDB hazır olana kadar bekle
```bash
until docker exec emex-mariadb-import mysql -u root -pemex_import_2026 -e "SELECT 1" 2>/dev/null; do
echo "Waiting for MariaDB..."; sleep 3
done
echo "MariaDB ready!"
```
### Adım 4 — Dump'ı MariaDB'ye import et (~30-90 dk)
```bash
zcat /home/s/scr/sase/emexae/emex_db_backup_20260302_193549.sql.gz | \
docker exec -i emex-mariadb-import \
mysql --user=root --password=emex_import_2026 \
--max-allowed-packet=512M \
emex
```
> NOT: Büyük dump — birkaç saat sürebilir. Terminali açık tut veya screen/tmux kullan.
### Adım 5 — Import doğrula
```bash
docker exec emex-mariadb-import mysql -u root -pemex_import_2026 emex -e "
SELECT table_name, table_rows
FROM information_schema.tables
WHERE table_schema='emex'
ORDER BY table_rows DESC;"
```
### Adım 6 — PostgreSQL'de emex DB oluştur
```bash
docker exec sase-postgres psql -U sase -c "CREATE DATABASE emex OWNER sase;"
```
### Adım 7 — pgloader config dosyası yaz
```bash
cat > /tmp/emex-pgloader.load << 'EOF'
LOAD DATABASE
FROM mysql://root:emex_import_2026@127.0.0.1:3307/emex
INTO postgresql://sase:vlii9wcMK0dcXD0A8zYdHx4wQp3XUQ7@127.0.0.1:5432/emex
WITH
include drop,
create tables,
create indexes,
reset sequences,
foreign keys,
workers = 4,
concurrency = 1,
multiple readers per thread,
rows per range = 10000
SET MySQL PARAMETERS
net_read_timeout = '600',
net_write_timeout = '600'
EXCLUDING TABLES MATCHING
'api_cache',
'audit_log',
'scrape_queue',
'scrape_queue_v2',
'scrape_sessions',
'model_progress'
CAST
type tinyint to boolean using tinyint-to-boolean,
type int with extra auto_increment to serial,
type bigint with extra auto_increment to bigserial,
column parts.part_number_clean to text drop typemod;
EOF
```
### Adım 8 — pgloader çalıştır (~30-90 dk)
```bash
pgloader /tmp/emex-pgloader.load
```
pgloader çıktısında her tablo için:
- Okunan satır sayısı
- Yazılan satır sayısı
- Süre
görünür.
### Adım 9 — PostgreSQL doğrulama
```bash
docker exec sase-postgres psql -U sase -d emex -c "
SELECT schemaname, tablename, n_live_tup
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;"
```
Kritik kontroller:
```bash
# Katalog sayısı
docker exec sase-postgres psql -U sase -d emex -c "SELECT COUNT(*) FROM catalogs;"
# Araç sayısı
docker exec sase-postgres psql -U sase -d emex -c "SELECT COUNT(*) FROM vehicles;"
# Parça grubu sayısı (en büyük tablo)
docker exec sase-postgres psql -U sase -d emex -c "SELECT COUNT(*) FROM part_groups;"
```
### Adım 10 — Temizlik
```bash
docker stop emex-mariadb-import
docker rm emex-mariadb-import
rm /tmp/emex-pgloader.load
```
## Sonraki Adım (ayrı session)
1. `emex` DB'deki `catalogs` tablosundan marka listesi çek
2. Marka marka kontrol et: hangi markalar SASE'de zaten var, hangisi yeni
3. Her marka için SASE `emex_*` tablolarına mapping yaz
4. Migration script ile marka bazlı import
## Notlar
- Disk alanı: 124 GB müsait — yeterli
- PostgreSQL user: `sase` / şifre: `vlii9wcMK0dcXD0A8zYdHx4wQp3XUQ7`
- `part_groups` tablosundaki ~22M satır en büyük yük olacak
- pgloader multi-thread çalışır, paralel yük kaldırır

1
.claude/skills/seo-audit Symbolic link
View File

@@ -0,0 +1 @@
../../.agents/skills/seo-audit

File diff suppressed because one or more lines are too long

1510
knowledge.md Normal file

File diff suppressed because it is too large Load Diff

1627
postalMail.txt Normal file

File diff suppressed because it is too large Load Diff

630
ralpRapor.md Normal file
View File

@@ -0,0 +1,630 @@
# VIN Test Raporu (Ralph Loop)
**Baslangic:** 2026-02-15T21:16:07.212Z
**Son Guncelleme:** 2026-02-17T14:28:42.712Z
**Durum:** running
**Ilerleme:** 75 / 164
## Ozet
| Metrik | Deger |
|--------|-------|
| Toplam Test | 75 |
| Basarili | 32 |
| Kismi Basarili | 25 |
| Decode Basarisiz | 7 |
| Kategori Yok | 9 |
| Hata | 2 |
## Detayli Sonuclar
| # | VIN | Marka | Kategori Sayisi | Test Edilen | Basarili | Hatali | Durum | Sure |
|---|-----|-------|-----------------|-------------|----------|--------|-------|------|
| 1 | W0LPF6EA7BG121795 | Opel | 198 | 198 | 198 | 0 | OK | 375.1s |
| 2 | VF1C066MC19290416 | Renault | 239 | 239 | 239 | 0 | OK | 800.0s |
| 3 | JMBSRCY1ABU000224 | Mitsubishi | 248 | 248 | 246 | 2 | KISMI | 3285.2s |
| 4 | SB1BE76L10E029762 | Toyota | 127 | 127 | 127 | 0 | OK | 1700.6s |
| 5 | WV1ZZZ2KZDX108924 | Volkswagen | 0 | 0 | 0 | 0 | KATEGORI_YOK | 33.5s |
| 6 | NM432300003094127 | Unknown | 218 | 218 | 211 | 7 | KISMI | 3413.2s |
| 7 | VF1LA0S05TR601766 | Renault | 271 | 271 | 263 | 8 | KISMI | 3946.7s |
| 8 | W0L000087TZ000665 | Opel | 0 | 0 | 0 | 0 | KATEGORI_YOK | 33.5s |
| 9 | W0L0TGF484G034387 | Opel | 218 | 218 | 216 | 2 | KISMI | 3208.1s |
| 10 | VSSZZZ6KZYR001992 | Seat | 641 | 641 | 641 | 0 | OK | 835.1s |
| 11 | WP1ZZZ92ZCLA29834 | Porsche | 375 | 375 | 375 | 0 | OK | 710.9s |
| 12 | VE7RD9HZCAL519062 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 123.5s |
| 13 | UU1HSDJ9P58251699 | Dacia | 0 | 0 | 0 | 0 | KATEGORI_YOK | 33.6s |
| 14 | VF15R040H55793696 | Renault | 0 | 0 | 0 | 0 | KATEGORI_YOK | 33.7s |
| 15 | JMYJNP15V1A001419 | Mitsubishi | 244 | 244 | 240 | 4 | KISMI | 3438.8s |
| 16 | NM422300007066210 | Unknown | 207 | 207 | 205 | 2 | KISMI | 3018.2s |
| 17 | VF1LM1A0H37603339 | Renault | 239 | 239 | 238 | 1 | KISMI | 3731.4s |
| 18 | VF32AKFWF41658774 | Peugeot | 0 | 0 | 0 | 0 | KATEGORI_YOK | 33.6s |
| 19 | WVGZZZ7LZ4D069535 | Volkswagen | 817 | 817 | 817 | 0 | OK | 1035.5s |
| 20 | WF0PXXWPDPAG58896 | Ford | 238 | 238 | 237 | 1 | KISMI | 3186.1s |
| 21 | JF1GD9LF37G069905 | Subaru | 0 | 0 | 0 | 0 | OK | 4569.8s |
| 22 | WVWZZZ1KZCP003443 | Volkswagen | 623 | 623 | 623 | 0 | OK | 1206.7s |
| 23 | WDB2020181A148652 | Mercedes-Benz | 36 | 36 | 36 | 0 | OK | 655.2s |
| 24 | ZEA19900005312547 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 123.4s |
| 25 | ZFA19900005312547 | Fiat | 0 | 0 | 0 | 0 | KATEGORI_YOK | 49.4s |
| 26 | KL1SF48TJ8B042483 | Unknown | 154 | 154 | 149 | 5 | KISMI | 2566.2s |
| 27 | WDF44770513186937 | Mercedes-Benz | 208 | 208 | 208 | 0 | OK | 372.3s |
| 28 | NM417800006308304 | Unknown | 204 | 204 | 203 | 1 | KISMI | 3301.4s |
| 29 | NMB37515112175264 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 123.6s |
| 30 | NM418200001500727 | - | 0 | 17 | 13 | 4 | HATA | 676.1s |
| 31 | UU1JSDBC651778807 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 124.7s |
| 32 | WVWZZZ3BZWP410811 | Volkswagen | 934 | 934 | 882 | 52 | KISMI | 979.3s |
| 33 | WDB1260241A399346 | - | 0 | 184 | 165 | 19 | HATA | 1952.8s |
| 34 | WDD1760421V137871 | Mercedes-Benz | 147 | 147 | 147 | 0 | OK | 366.9s |
| 35 | W0L000036V1949501 | Opel | 91 | 91 | 89 | 2 | KISMI | 1552.9s |
| 36 | W0L000087NZ008763 | Opel | 0 | 0 | 0 | 0 | KATEGORI_YOK | 44.0s |
| 37 | ZAR94000007364914 | Unknown | 220 | 220 | 216 | 4 | KISMI | 3574.3s |
| 38 | JTNBC56E902005424 | Toyota | 92 | 92 | 92 | 0 | OK | 2046.5s |
| 39 | WVGZZZ5NZHW815538 | Volkswagen | 848 | 848 | 848 | 0 | OK | 924.2s |
| 40 | WMA06XZZ1FP067766 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 123.6s |
| 41 | VF7YDBMFC11969992 | Citroen | 218 | 218 | 215 | 3 | KISMI | 3496.8s |
| 42 | WVWZZZ1FZ7V010573 | Volkswagen | 836 | 836 | 836 | 0 | OK | 995.2s |
| 43 | NLAFC5650HW030691 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 123.4s |
| 44 | WV2ZZZ7HZ7X013984 | Volkswagen | 853 | 853 | 853 | 0 | OK | 1035.6s |
| 45 | WDC1641221A401661 | Mercedes-Benz | 144 | 144 | 144 | 0 | OK | 462.5s |
| 46 | NM417800006360859 | Unknown | 202 | 202 | 198 | 4 | KISMI | 3377.4s |
| 47 | WDD2130851A528136 | Mercedes-Benz | 165 | 165 | 165 | 0 | OK | 359.5s |
| 48 | JTNBV56E90J113851 | Toyota | 104 | 104 | 104 | 0 | OK | 1800.9s |
| 49 | TMBAH45JX83181964 | Skoda | 533 | 533 | 533 | 0 | OK | 863.7s |
| 50 | JMZDKFWSA10182289 | Mazda | 219 | 219 | 218 | 1 | KISMI | 3137.2s |
| 51 | TMBHK11U418432789 | Skoda | 546 | 546 | 546 | 0 | OK | 869.4s |
| 52 | VF1LZLV0E55748319 | Renault | 0 | 0 | 0 | 0 | KATEGORI_YOK | 50.6s |
| 53 | WDB2100651A794807 | Mercedes-Benz | 294 | 294 | 280 | 14 | KISMI | 4313.8s |
| 54 | WVWZZZ3DZ58003544 | Volkswagen | 851 | 851 | 851 | 0 | OK | 1169.6s |
| 55 | WVWZZZ13ZAV428915 | Volkswagen | 854 | 854 | 854 | 0 | OK | 1143.9s |
| 56 | VF1B53A75TR500769 | Renault | 0 | 0 | 0 | 0 | KATEGORI_YOK | 52.0s |
| 57 | JHMED93700S302540 | Honda | 233 | 233 | 228 | 5 | KISMI | 3924.1s |
| 58 | NM417800006215999 | Unknown | 214 | 214 | 213 | 1 | KISMI | 3351.3s |
| 59 | NM0GXXTTPGAG07617 | Ford | 244 | 244 | 244 | 0 | OK | 3489.7s |
| 60 | VF34C5FWF55363877 | Peugeot | 208 | 208 | 208 | 0 | OK | 3135.3s |
| 61 | WBA3D3108CJ266380 | BMW | 387 | 387 | 387 | 0 | OK | 1283.2s |
| 62 | WVWZZZ6RZFY267326 | Volkswagen | 847 | 847 | 847 | 0 | OK | 1092.8s |
| 63 | ZFA22300005542726 | Fiat | 227 | 227 | 227 | 0 | OK | 3507.6s |
| 64 | VSSZZZ1PZ6R014968 | Seat | 548 | 548 | 548 | 0 | OK | 863.8s |
| 65 | YV1AS985691096540 | Volvo | 266 | 266 | 265 | 1 | KISMI | 3881.4s |
| 66 | WV2ZZZ7HZ7H099052 | Volkswagen | 861 | 861 | 861 | 0 | OK | 1159.5s |
| 67 | VF31AKFXLXM000535 | Peugeot | 230 | 230 | 228 | 2 | KISMI | 3521.7s |
| 68 | YV1AS84ABE1177595 | Volvo | 269 | 269 | 267 | 2 | KISMI | 4130.0s |
| 69 | TMAJ3812HGJ226161 | Unknown | 250 | 250 | 246 | 4 | KISMI | 3771.5s |
| 70 | NM414600008523582 | Unknown | 224 | 224 | 222 | 2 | KISMI | 3415.2s |
| 71 | WAUZZZGY7MA099278 | Audi | 295 | 295 | 295 | 0 | OK | 335.9s |
| 72 | NM435600006B82571 | - | 0 | 0 | 0 | 0 | DECODE_FAIL | 123.3s |
| 73 | KNEFB227245296811 | Unknown | 218 | 218 | 216 | 2 | KISMI | 3393.7s |
| 74 | WDD1681331K008662 | Mercedes-Benz | 130 | 130 | 130 | 0 | OK | 373.6s |
| 75 | WBALZ72090DY98841 | BMW | 155 | 155 | 155 | 0 | OK | 526.8s |
## Hata Detaylari
| VIN | Kategori | Yol | HTTP Kodu | Endpoint | Hata Detayi |
|-----|----------|-----|-----------|----------|-------------|
| JMBSRCY1ABU000224 | Gasket, cylinder head | Engine > Gaskets > Gasket, cylinder head | 408 | /api/vehicles/f34c261c-014c-4913-a946-b23e187aac29/categories/8c0768a7-493b-41c7-95e9-47a98f291548 | HTTP 408 Request Timeout |
| JMBSRCY1ABU000224 | Radiator /Parts | Cooling System > Radiator/ Oil Cooler > Radiator /Parts | 408 | /api/vehicles/f34c261c-014c-4913-a946-b23e187aac29/categories/0a72b36c-b887-41f7-adf7-82c4cb16f507 | HTTP 408 Request Timeout |
| NM432300003094127 | Charger/-parts | Engine > Engine Air Supply > Charger (Turbo-/ Supercharger) > Charger/-parts | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/79a1ea64-3e6f-4f0b-b020-b4fc39c1d9fc | HTTP 408 Request Timeout |
| NM432300003094127 | EGR Valve/ Intake Manifold | Engine > Exhaust Emission Control > Exhaust Gas Recirculation (EGR) > EGR Valve/ Intake Manifold | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/e25a0be4-35f6-4e1b-95fc-188f07a31333 | HTTP 408 Request Timeout |
| NM432300003094127 | Slave Cylinder | Clutch/ Parts > Clutch Control > Slave Cylinder | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/45fc7426-1c4d-4421-9298-2157296b6c2f | HTTP 408 Request Timeout |
| NM432300003094127 | Drive Shaft | Wheel Drive > Drive Shaft | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/56372ceb-3a5c-490d-9c92-d90e4f61668c | HTTP 408 Request Timeout |
| NM432300003094127 | Joint / Set | Wheel Drive > Joint / Set | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/1be9c667-13aa-49a4-93b4-b7e9ceebb60c | HTTP 408 Request Timeout |
| NM432300003094127 | Differential | Axle Drive > Differential | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/ddf34813-9217-4336-8ba5-3835c6b5cbd4 | HTTP 408 Request Timeout |
| NM432300003094127 | Control Levers/ Cables | Brake System > Control Levers/ Cables | 408 | /api/vehicles/76086411-1f59-4520-845d-638c8f971c7f/categories/168bc911-0007-46cb-ac03-e40e0db9b9ab | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Rocker Cover/ Gasket | Engine > Cylinder Head/ Parts > Rocker Cover/ Gasket | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/1f7c01aa-8fbf-4e9b-93bf-8ecabb52ac6d | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Timing Gears | Engine > Engine Timing Control > Timing Gears | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/d285f0b3-f59a-4635-9fef-b28ea28aaa43 | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Camshaft | Engine > Engine Timing Control > Camshaft | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/0dd58e5f-1565-4b48-90ce-7290f4ebb33c | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Timing Gear | Engine > Engine Timing Control > Timing Gear | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/6712e0b1-e1ec-4a95-ae79-c03ced6f4f13 | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Engine Mounting Bracket | Engine > Engine Mountings > Engine Mounting Bracket | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/45a76885-4350-43bc-ad78-62ea41f25f9e | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Oil Filter | Engine > Lubrication > Oil Filter | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/db5f2532-37e4-433a-ba7b-47ea3fab6089 | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Clutch Pressure Plate | Clutch/ Parts > Clutch Pressure Plate | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/145cdbb9-d0a5-47db-a6aa-31c7c3deb336 | HTTP 408 Request Timeout |
| VF1LA0S05TR601766 | Transmission Control | Transmission > Manual Transmission > Transmission Control | 408 | /api/vehicles/65b0795d-8916-4018-bd2f-bda49c93d747/categories/d9b62d6e-375a-4f20-83aa-8978fc10c365 | HTTP 408 Request Timeout |
| W0L0TGF484G034387 | Thermostat | Cooling System > Thermostat/ Gasket > Thermostat | 408 | /api/vehicles/7e0e40cd-13b1-46a3-99d6-cda4ce57edcd/categories/d8e3bc8c-d529-4e68-9859-e393e6072bae | HTTP 408 Request Timeout |
| W0L0TGF484G034387 | Cruise Control System | Comfort Systems > Motor/ Relay/ Switch > Cruise Control System | 408 | /api/vehicles/7e0e40cd-13b1-46a3-99d6-cda4ce57edcd/categories/8648b080-2d6f-4b23-8728-56a337c54ac1 | HTTP 408 Request Timeout |
| JMYJNP15V1A001419 | Repair Kit, clutch complete | Clutch/ Parts > Repair Kit, clutch complete | 408 | /api/vehicles/07d07f98-4124-42c8-8ac5-d92d2ecbc406/categories/f4436123-9c94-4867-9829-811ac0ab7e08 | HTTP 408 Request Timeout |
| JMYJNP15V1A001419 | Clutch Disc | Clutch/ Parts > Clutch Disc | 408 | /api/vehicles/07d07f98-4124-42c8-8ac5-d92d2ecbc406/categories/827e4884-a1b3-4d09-8736-b4bdab824c24 | HTTP 408 Request Timeout |
| JMYJNP15V1A001419 | Shock Absorber | Suspension > Shock Absorber | 408 | /api/vehicles/07d07f98-4124-42c8-8ac5-d92d2ecbc406/categories/02a29cfb-e9fd-4441-8201-bbc595953172 | HTTP 408 Request Timeout |
| JMYJNP15V1A001419 | Steering Joints | Steering > Steering Joints | 408 | /api/vehicles/07d07f98-4124-42c8-8ac5-d92d2ecbc406/categories/d2cf2047-0e00-45cc-8a59-9f1a3db5ea04 | HTTP 408 Request Timeout |
| NM422300007066210 | Gasket | Exhaust System > Assembly Parts > Individual Assembly Parts > Gasket | 408 | /api/vehicles/ef0f4a87-52a0-460b-a5ee-9125e224022c/categories/68909cfd-3282-460b-93dd-2d0dd4de0595 | HTTP 408 Request Timeout |
| NM422300007066210 | Ignition Coil | Spark/ Glow Ignition > Ignition Coil | 408 | /api/vehicles/ef0f4a87-52a0-460b-a5ee-9125e224022c/categories/b70e49da-e326-4e3d-8dbe-91bcdf5bfef7 | HTTP 408 Request Timeout |
| VF1LM1A0H37603339 | Sensors | Electrics > Sensors | 408 | /api/vehicles/8f57dfc1-765f-4d63-975d-4a6bb7e60160/categories/06da8965-bd99-450c-bdbf-0c0bafea60bf | HTTP 408 Request Timeout |
| WF0PXXWPDPAG58896 | Radiator Fan | Cooling System > Radiator Fan | 408 | /api/vehicles/d8da42ba-c7eb-477b-99d5-0e72c2ac8efe/categories/a71757e0-d371-4a55-adde-c3883bb4e44e | HTTP 408 Request Timeout |
| KL1SF48TJ8B042483 | Air Filter/ Housing | Engine > Engine Air Supply > Air Filter/ Housing | 408 | /api/vehicles/2d391d40-0fe5-4035-90a3-7e207d2c684a/categories/5edfeaab-9a7c-45d8-887e-30dccbcf036a | HTTP 408 Request Timeout |
| KL1SF48TJ8B042483 | Gasket, intake manifold | Engine > Gaskets > Gasket, intake manifold | 408 | /api/vehicles/2d391d40-0fe5-4035-90a3-7e207d2c684a/categories/bfbd1a82-d4cd-4e86-b45f-513a34aca56f | HTTP 408 Request Timeout |
| KL1SF48TJ8B042483 | Locks, exterior | Locking System > Locks, exterior | 408 | /api/vehicles/2d391d40-0fe5-4035-90a3-7e207d2c684a/categories/f6509eb5-67ea-433d-8f73-ea8fb4de74a1 | HTTP 408 Request Timeout |
| KL1SF48TJ8B042483 | Handles | Locking System > Handles | 408 | /api/vehicles/2d391d40-0fe5-4035-90a3-7e207d2c684a/categories/4813ad3c-fbef-40eb-b0cc-9c21f3a924c0 | HTTP 408 Request Timeout |
| KL1SF48TJ8B042483 | Boot/ Load Bay | Accessories > Boot/ Load Bay | 408 | /api/vehicles/2d391d40-0fe5-4035-90a3-7e207d2c684a/categories/547cd5e1-952b-46e4-ab3e-c23273b8b0f9 | HTTP 408 Request Timeout |
| NM417800006308304 | Brake Drum | Brake System > Drum Brake > Brake Drum | 408 | /api/vehicles/edc07c50-5e2e-45ad-b8d4-77db903820b4/categories/ef344608-be04-4b9f-8ea0-90fe574247d0 | HTTP 408 Request Timeout |
| NM418200001500727 | Radiator Mounting | Body > Vehicle Front > Parts > Radiator Mounting | 408 | /api/vehicles/5524cb31-27ee-4698-8ade-f48fe75e0e99/categories/0d660032-cec3-43f5-b63b-fc6dd66b5341 | HTTP 408 Request Timeout |
| NM418200001500727 | Front Fairing/ Grille | Body > Vehicle Front > Parts > Front Fairing/ Grille | 408 | /api/vehicles/5524cb31-27ee-4698-8ade-f48fe75e0e99/categories/8960e61f-1b35-4805-8b03-4674adae2fbf | HTTP 408 Request Timeout |
| NM418200001500727 | Trim-/Protection Strips | Body > Trim/ Protection/ Decorative Strips/ Emblems > Trim-/Protection Strips | 408 | /api/vehicles/5524cb31-27ee-4698-8ade-f48fe75e0e99/categories/554ec7ef-0fe5-4781-852c-4d804d9e85ad | HTTP 408 Request Timeout |
| NM418200001500727 | Engine Electrics | Engine > Engine Electrics | 408 | /api/vehicles/5524cb31-27ee-4698-8ade-f48fe75e0e99/categories/9ad76163-f248-4290-896e-d0986e54e1da | HTTP 408 Request Timeout |
| WVWZZZ3BZWP410811 | İkincil hava pompası (2,8Ltr.) | Motor > İkincil hava pompası (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/0f33a200-be44-4a30-9f52-5daa58de30ce | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | İkincil hava pompası (2,3Ltr.) | Motor > İkincil hava pompası (2,3Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/2634d951-b9fa-484e-b7fe-5ba207d197d7 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Vakum sistemi
Egzoz geri dönüşü (1,9Ltr.) | Motor > Vakum sistemi
Egzoz geri dönüşü (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/7e3d21cd-626c-4b37-b064-65d377a0b318 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Vakum sistemi
Egzoz geri dönüşü (2,5Ltr.) | Motor > Vakum sistemi
Egzoz geri dönüşü (2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/ab31178e-9429-47cc-bf56-3b18f6fd6bbe | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Aktif karbon filt.sistemi
Emme püskürtme pompası
F >> 3B-W-500 000*
bk. tablo: (1,8Ltr.
133\-021) | Motor > Aktif karbon filt.sistemi
Emme püskürtme pompası
F >> 3B-W-500 000*
bk. tablo: (1,8Ltr.
133\-021) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/e3165436-c9d6-4a69-9caa-16a9a5f82c5a | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Gaz kelebeği kapağı kontrol ün
Emmeağızları (1,8Ltr.) | Motor > Gaz kelebeği kapağı kontrol ün
Emmeağızları (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/9193fb3a-1c2d-4cbf-b843-07e8e7caadaf | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Gaz kelebeği kapağı kontrol ün
Emmeağızları
F >> 3B-W-500 000* (1,8Ltr.) | Motor > Gaz kelebeği kapağı kontrol ün
Emmeağızları
F >> 3B-W-500 000* (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/6593ccfe-979f-4237-890a-6eefc480f2e0 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emme sistemi
Aktif karbon filt.sistemi
Emme püskürtme pompası
F 3B-X-000 001>> (1,8Ltr.) | Motor > Emme sistemi
Aktif karbon filt.sistemi
Emme püskürtme pompası
F 3B-X-000 001>> (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/e23cef07-5f48-4f5b-9ac8-31da6e328631 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emmeağızları
Gaz kelebeği kapağı kontrol ün
Külbütör kapağının hava
tahliyesi
Aktif karbon filt.sistemi
F >> 3B-W-294 000* (1,6Ltr.) | Motor > Emmeağızları
Gaz kelebeği kapağı kontrol ün
Külbütör kapağının hava
tahliyesi
Aktif karbon filt.sistemi
F >> 3B-W-294 000* (1,6Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/9aae6111-96e5-4fee-8691-8ab7be746fe5 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emme sistemi
Aktif karbon filt.sistemi
Vakum sistemi
Gaz kelebeği kapağı kontrol ün
Emme püskürtme pompası
F 3B-W-294 001>>* (1,6Ltr.) | Motor > Emme sistemi
Aktif karbon filt.sistemi
Vakum sistemi
Gaz kelebeği kapağı kontrol ün
Emme püskürtme pompası
F 3B-W-294 001>>* (1,6Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/747d78e5-2088-4c42-8c74-ac8055019acd | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emmeağızları
Gaz kelebeği kapağı kontrol ün
Külbütör kapağının hava
tahliyesi
Aktif karbon filt.sistemi (1,6Ltr.) | Motor > Emmeağızları
Gaz kelebeği kapağı kontrol ün
Külbütör kapağının hava
tahliyesi
Aktif karbon filt.sistemi (1,6Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/fcdf5fae-a323-4cd3-b288-50104ff55be8 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emme sistemi
Vakum sistemi
Aktif karbon filt.sistemi
Emme püskürtme pompası (1,8Ltr.) | Motor > Emme sistemi
Vakum sistemi
Aktif karbon filt.sistemi
Emme püskürtme pompası (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/9cee20b5-db62-4504-9130-a7b1973c1f52 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emmeağızları
Gaz kelebeği kapağı kontrol ün
Aktif karbon filt.sistemi
Emme püskürtme pompası
F >> 3B-X-360 000* (1,8Ltr.) | Motor > Emmeağızları
Gaz kelebeği kapağı kontrol ün
Aktif karbon filt.sistemi
Emme püskürtme pompası
F >> 3B-X-360 000* (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/02d90f6e-f8a2-4e34-b09f-619a485229c4 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Bağlantı parçalı hava
filtresi (1,6/1,8Ltr.) | Motor > Bağlantı parçalı hava
filtresi (1,6/1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/693ff3ff-a085-4950-a2e4-7c2c66629aca | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Enjektör valfı
Basınç regülatörü
Yakıt hattı (1,6\-1,8Ltr.) | Motor > Enjektör valfı
Basınç regülatörü
Yakıt hattı (1,6\-1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/912115b4-e034-4505-ba96-a42257550df5 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emme sistemi
Aktif karbon filt.sistemi
Vakum sistemi
Gaz kelebeği kapağı kontrol ün
F >> 3B-X-132 000* (2,3Ltr.) | Motor > Emme sistemi
Aktif karbon filt.sistemi
Vakum sistemi
Gaz kelebeği kapağı kontrol ün
F >> 3B-X-132 000* (2,3Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/e7110c8d-1f4a-447d-aff2-4bfd712c1cc8 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emme sistemi
Gaz kelebeği ağzı
Vakum sistemi
F 3B-X-132 001>>* (2,3Ltr.) | Motor > Emme sistemi
Gaz kelebeği ağzı
Vakum sistemi
F 3B-X-132 001>>* (2,3Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/82b54cba-d7b5-457b-a013-e5d9f38d507e | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Yakıt dağıtıcısı (2,3Ltr.) | Motor > Yakıt dağıtıcısı (2,3Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/360094df-4651-4c18-9eec-eb381c024e58 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Vakum sistemi
Aktif karbon filt.sistemi
Egzoz geri dönüşü olmayan
araçlar için
Emme manifoldu
Gaz kelebeği kapağı kontrol ün (2,8Ltr.) | Motor > Vakum sistemi
Aktif karbon filt.sistemi
Egzoz geri dönüşü olmayan
araçlar için
Emme manifoldu
Gaz kelebeği kapağı kontrol ün (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/39083303-5885-4ecd-9a1c-efdb46b376d6 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Emme sistemi
Aktif karbon filt.sistemi
Vakum sistemi
Emme püskürtme pompası (2,8Ltr.) | Motor > Emme sistemi
Aktif karbon filt.sistemi
Vakum sistemi
Emme püskürtme pompası (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/2ea70a4b-73f1-4ec0-bf80-d64c9ef6a830 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Bağlantı parçalı hava
filtresi
Hava kütle ölçer
M >> A.. 400 000 (2,8Ltr.) | Motor > Bağlantı parçalı hava
filtresi
Hava kütle ölçer
M >> A.. 400 000 (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/782c782e-76ab-4a28-a30a-fac0a698442a | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Bağlantı parçalı hava
filtresi
Hava kütle ölçer
M A.. 400 001>> (2,8Ltr.) | Motor > Bağlantı parçalı hava
filtresi
Hava kütle ölçer
M A.. 400 001>> (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/883499c5-c171-4e4b-b8de-fe9bee8c36c9 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Enjektör valfı
Basınç regülatörü
Yakıt hattı (2,8Ltr.) | Motor > Enjektör valfı
Basınç regülatörü
Yakıt hattı (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/bc99ca88-e5aa-41b7-af32-fd7532a617ca | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Debriyaj (1,6Ltr.) | Motor > Debriyaj (1,6Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/a3395541-5c2c-4bd6-8cee-ddbb0f1ae0d9 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Debriyaj (1,8Ltr.) | Motor > Debriyaj (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/36785348-d31e-4408-9e50-79e5b8b32f24 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Debriyaj (1,9Ltr.) | Motor > Debriyaj (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/25e5c5a3-2f44-4bf6-879c-26507ef6433b | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Debriyaj (2,3Ltr.) | Motor > Debriyaj (2,3Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/a0f74aab-dcf7-4c94-b095-2d01ca1653e4 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Debriyaj (2,8Ltr.
2,5Ltr.) | Motor > Debriyaj (2,8Ltr.
2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/1db73050-249d-4fb7-9fa2-0e4b2d0a1572 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Vakum pompası (1,9Ltr.) | Motor > Vakum pompası (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/194df34e-55f3-4781-9e12-6ef4754189bf | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Vakum pompası
Yakıt pompası (1,9Ltr.) | Motor > Vakum pompası
Yakıt pompası (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/5086fdb5-6bde-4290-b703-0559b5265d1f | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Vakum pompası (2,5Ltr.) | Motor > Vakum pompası (2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/58616150-67ba-47fd-98d3-65b6a021bc49 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Kanatlı pompa
Hidrolik direksiyon için (1,6/1,8Ltr.
2,0Ltr.) | Motor > Kanatlı pompa
Hidrolik direksiyon için (1,6/1,8Ltr.
2,0Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/b517b6d8-a77d-4964-b231-a9ac3bd7c3ca | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Kanatlı pompa
Hidrolik direksiyon için (1,9Ltr.) | Motor > Kanatlı pompa
Hidrolik direksiyon için (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/8feb0c37-8500-44b8-bd0a-fc000b54be4f | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Kanatlı pompa
Hidrolik direksiyon için (2,3Ltr.) | Motor > Kanatlı pompa
Hidrolik direksiyon için (2,3Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/61c9281a-c87f-47fa-af7d-c3a68e8079c3 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Kanatlı pompa
Hidrolik direksiyon için (2,8Ltr.) | Motor > Kanatlı pompa
Hidrolik direksiyon için (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/ed934181-313e-4f69-82ca-99ff01e189d3 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Kanatlı pompa (2,5Ltr.) | Motor > Kanatlı pompa (2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/392d9135-d693-4d47-9a46-a3ef0de37f51 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Egzoz turboşarj (1,9Ltr.) | Motor > Egzoz turboşarj (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/286cfae3-5c91-4d43-adde-47ef5c5587b5 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Egzoz turboşarj (1,8Ltr.) | Motor > Egzoz turboşarj (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/4ce4156c-ce1c-4633-9a65-df1d4e371236 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Egzoz turboşarj (2,5Ltr.) | Motor > Egzoz turboşarj (2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/b8447e40-27f6-4ffa-8ec2-242af3ae18e2 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Ara soğutucu (1,9Ltr.) | Motor > Ara soğutucu (1,9Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/6b279cbd-2918-40b1-bee2-79611b925728 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Ara soğutucu (1,8Ltr.) | Motor > Ara soğutucu (1,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/bada58e1-0707-4e66-acbe-50df39abe734 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Ara soğutucu (2,5Ltr.) | Motor > Ara soğutucu (2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/cedcb523-cf00-405c-8e30-7e7ca57b2d71 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Motorun tespit parçaları | Motor > Motorun tespit parçaları | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/3ca9cf13-d8ba-480e-89ee-08bf1b02101e | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Motorun tespit parçaları (2,8Ltr.) | Motor > Motorun tespit parçaları (2,8Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/86f8f533-5cf6-4f36-8163-615b950a14d4 | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Motorun tespit parçaları (2,5Ltr.) | Motor > Motorun tespit parçaları (2,5Ltr.) | 500 | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/17d0eadf-167c-4825-b3ce-269729bbc4fc | HTTP 500 Internal Server Error |
| WVWZZZ3BZWP410811 | Tampon (iç) | Kaporta > Tampon (iç) | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/d1318ffe-2be5-45d9-b6d6-c182ec57a6f0 | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/d1318ffe-2be5-45d9-b6d6-c182ec57a6f0
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WVWZZZ3BZWP410811 | Yan parça
Şasi kolu olan davlumbaz (iç
ön) | Kaporta > Yan parça
Şasi kolu olan davlumbaz (iç
ön) | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/47f2954a-7fec-4117-8321-2149948d7b87 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/47f2954a-7fec-4117-8321-2149948d7b87
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WVWZZZ3BZWP410811 | Yan parça (iç) | Kaporta > Yan parça (iç) | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/57d06c2a-58a6-4b30-ac7e-36a7036893d9 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/57d06c2a-58a6-4b30-ac7e-36a7036893d9
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WVWZZZ3BZWP410811 | Kesit parçası - yan panel
çerçevesi
Depo kapağı | Kaporta > Kesit parçası - yan panel
çerçevesi
Depo kapağı | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/3a8b2cb2-616f-4f35-8664-cf31d6be5990 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/3a8b2cb2-616f-4f35-8664-cf31d6be5990
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WVWZZZ3BZWP410811 | Bagaj tabanı
Arka koruma sacı | Kaporta > Bagaj tabanı
Arka koruma sacı | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/a1b1ba33-256c-4ec5-8ce0-52f686b6441f | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/a1b1ba33-256c-4ec5-8ce0-52f686b6441f
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WVWZZZ3BZWP410811 | Tavan
Tavan takviyesi | Kaporta > Tavan
Tavan takviyesi | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/6a891c38-83dd-4924-a163-c8f19ac48110 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/6a891c38-83dd-4924-a163-c8f19ac48110
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WVWZZZ3BZWP410811 | Fan
Isı eşanjörü
Toz ve polen filtresi (Kalorifer) | Kaporta > Fan
Isı eşanjörü
Toz ve polen filtresi (Kalorifer) | - | /api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/bf0ac174-a4be-41e6-a8bd-d419eb0da9e7 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/66f8a312-e84d-49be-b778-334918c75663/categories/bf0ac174-a4be-41e6-a8bd-d419eb0da9e7
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=mQ5XzFxxCQepRlhGEsxXG3JF8tadou5U.b2H9%2FhIsOUWxUPrO5BJTSeKHTgIxOPf8eCbv%2BXupb0o%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDowMjoxNy41MTZaIiwidG9rZW4iOiJtUTVYekZ4eENRZXBSbGhHRXN4WEczSkY4dGFkb3U1VSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MDI6MTcuNTE2WiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjRjZTFhNTBlLWUxMWUtNGE4MC1hYWJmLWEzNjMzMzQ2NjdkNyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MDUzNzUyMCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUwODM3NTIwLCJzaWduYXR1cmUiOiJMelFHaHdLa3lMUmdKc3UzZ3VXRzFEWkJocTQ2a2RZVGtxSjdMNUZZVW44In0
|
| WDB1260241A399346 | Gasket, oil pan | Engine > Gaskets > Gasket, oil pan | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/f8564e82-6db4-4d27-a2c5-9f048c019a09 | Request failed: apiRequestContext.get: read ECONNRESET
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/f8564e82-6db4-4d27-a2c5-9f048c019a09
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D
|
| WDB1260241A399346 | Seals, fuel circuit | Engine > Gaskets > Seals, fuel circuit | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/83a6700f-5af5-472a-a32c-4035a9e721ed | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/83a6700f-5af5-472a-a32c-4035a9e721ed
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D
|
| WDB1260241A399346 | Seals, oil circuit | Engine > Gaskets > Seals, oil circuit | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/4ec7adc2-0304-42fa-b18f-f415eaaa0d4e | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/4ec7adc2-0304-42fa-b18f-f415eaaa0d4e
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Radial Oil Seal/- Set | Engine > Gaskets > Radial Oil Seal/- Set | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/2c170e2d-954d-42d0-b2e3-51da5cb75533 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/2c170e2d-954d-42d0-b2e3-51da5cb75533
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Timing Gears | Engine > Engine Timing Control > Timing Gears | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/8d88864d-dcae-412e-80c6-f7a0f61be4a5 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/8d88864d-dcae-412e-80c6-f7a0f61be4a5
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Timing Gear | Engine > Engine Timing Control > Timing Gear | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/0bbfb2a2-ac9b-4efb-afb1-4b9ef6a63ed0 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/0bbfb2a2-ac9b-4efb-afb1-4b9ef6a63ed0
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Camshaft | Engine > Engine Timing Control > Camshaft | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/62980c64-11ae-40bb-9f17-1841c310311c | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/62980c64-11ae-40bb-9f17-1841c310311c
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Rocker/ Tappet | Engine > Engine Timing Control > Rocker/ Tappet | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/2c1d6ff2-1944-4afc-9e1d-78619dc8496a | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/2c1d6ff2-1944-4afc-9e1d-78619dc8496a
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Push Rod / Tube | Engine > Engine Timing Control > Push Rod / Tube | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/17eb6144-d6c2-40d1-ae1f-39f6b161b605 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/17eb6144-d6c2-40d1-ae1f-39f6b161b605
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MjU5NjE0NywidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUyODk2MTQ3LCJzaWduYXR1cmUiOiI1bzFMam5wZi1PalFjWTBScFY1V1kxYTA2NU9DbEJDS0oydzYxdndqQm5nIn0
|
| WDB1260241A399346 | Gasket, oil pan | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Engine > Gaskets > Gasket, oil pan | 408 | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/f8564e82-6db4-4d27-a2c5-9f048c019a09 | HTTP 408 Request Timeout |
| WDB1260241A399346 | Seals, fuel circuit | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Engine > Gaskets > Seals, fuel circuit | 408 | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/83a6700f-5af5-472a-a32c-4035a9e721ed | HTTP 408 Request Timeout |
| WDB1260241A399346 | Lambda Control | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Engine > Exhaust Emission Control > Lambda Control | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/bc93ec39-91ee-4abc-91cd-ac841f1374da | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/bc93ec39-91ee-4abc-91cd-ac841f1374da
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D
|
| WDB1260241A399346 | Air Filter | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Filters > Air Filter | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/d4854152-e867-4e69-b941-9b18d9cd6758 | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/d4854152-e867-4e69-b941-9b18d9cd6758
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MzQwMDU1MCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUzNzAwNTUwLCJzaWduYXR1cmUiOiJTbVJGVUJwMVoyVnNHZlVjRDRsNjZRMXliazRPRWRIbnF1amZxMy16b013In0
|
| WDB1260241A399346 | Fuel Filter | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Filters > Fuel Filter | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/069fc3d2-40f5-4111-a5d2-ff13053fcebd | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/069fc3d2-40f5-4111-a5d2-ff13053fcebd
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MzQwMDU1MCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUzNzAwNTUwLCJzaWduYXR1cmUiOiJTbVJGVUJwMVoyVnNHZlVjRDRsNjZRMXliazRPRWRIbnF1amZxMy16b013In0
|
| WDB1260241A399346 | Hydraulic Filter | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Filters > Hydraulic Filter | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/44a667ec-ee4a-4d94-bead-a1dfe015a4e7 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/44a667ec-ee4a-4d94-bead-a1dfe015a4e7
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MzQwMDU1MCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUzNzAwNTUwLCJzaWduYXR1cmUiOiJTbVJGVUJwMVoyVnNHZlVjRDRsNjZRMXliazRPRWRIbnF1amZxMy16b013In0
|
| WDB1260241A399346 | Fuel Delivery Unit, complete | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Fuel Supply System > Fuel Delivery Unit, complete | 408 | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/fef6ba03-a9b7-44c8-9769-971030b80389 | HTTP 408 Request Timeout |
| WDB1260241A399346 | Fuel Tank / Parts | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Fuel Supply System > Fuel Tank / Parts | 408 | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/a5cb7394-4c0b-4ab6-9764-fd4497a723fd | HTTP 408 Request Timeout |
| WDB1260241A399346 | Fuel Filter/-housing | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Fuel Supply System > Fuel Filter/-housing | 408 | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/d22b2113-db4e-4687-90da-8cd4af333d0a | HTTP 408 Request Timeout |
| WDB1260241A399346 | Repair Kit | Engine > Engine Timing Control > Timing Chain/ Tensioner/ Guide > Fuel Supply System > Fuel Pump / Parts > Repair Kit | - | /api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/fce647f4-a5b1-41c1-b756-cc39b650472a | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/ad287034-dc1e-4866-ba0b-2115520344dd/categories/fce647f4-a5b1-41c1-b756-cc39b650472a
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=K2Dx1c28fu0bHeXiJZEfNmstC9CZsbvG.MI4D%2BhbfwByd8QKFajVJd8QG1GMmV1m9yUSd0PO0cXQ%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNDoyMToxNC43OTZaIiwidG9rZW4iOiJLMkR4MWMyOGZ1MGJIZVhpSlpFZk5tc3RDOUNac2J2RyIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTQ6MjE6MTQuNzk2WiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjEyOGRmMWZiLTQ3ZGUtNDQ4Yi1hZGZmLThiNjk1Y2U4ZGNiMyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1MzQwMDU1MCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjUzNzAwNTUwLCJzaWduYXR1cmUiOiJTbVJGVUJwMVoyVnNHZlVjRDRsNjZRMXliazRPRWRIbnF1amZxMy16b013In0
|
| W0L000036V1949501 | Rocker Cover/ Gasket | Engine > Cylinder Head/ Parts > Rocker Cover/ Gasket | 408 | /api/vehicles/5e6705a2-5a90-43f8-a191-4c6eecb430d1/categories/dbd9c713-ec69-4c09-af3f-cc8a5c1ee147 | HTTP 408 Request Timeout |
| W0L000036V1949501 | Parts / Accessories | Fuel Supply System > Fuel Pump / Parts > Parts / Accessories | - | /api/vehicles/5e6705a2-5a90-43f8-a191-4c6eecb430d1/categories/e9c43011-367c-4d5d-9aa6-110c77618c23 | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/5e6705a2-5a90-43f8-a191-4c6eecb430d1/categories/e9c43011-367c-4d5d-9aa6-110c77618c23
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=6eYxtsCUH4vbPWIyiMgCQzi8AlbOI3ob.jswsIUWxgRoHAc7rFTXVE45NWqYMINmqdFxNLGJouss%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QxNjoxMToxMi4yNjBaIiwidG9rZW4iOiI2ZVl4dHNDVUg0dmJQV0l5aU1nQ1F6aThBbGJPSTNvYiIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMTY6MTE6MTIuMjYwWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMTY6MTE6MTIuMjYwWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjMyODBkNTlmLWQwZTMtNDM5NS05OGE0LTkyOGFlNTZiOGJiMCJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI1OTcxNDA0MSwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjYwMDE0MDQxLCJzaWduYXR1cmUiOiJsaDZOeVd1X2UySEtrSnhxaWRUQkJvQmw3QlN6YzBKcFg3enFZdWZHTlM4In0
|
| ZAR94000007364914 | Engine Electrics | Engine > Engine Electrics | 408 | /api/vehicles/4c0d4aba-6aa1-4558-b6cc-8519dfc0c079/categories/8f0722fc-f843-4a12-8491-92f5c47a5e60 | HTTP 408 Request Timeout |
| ZAR94000007364914 | Gasket Set, complete | Engine > Gaskets > Gasket Set, complete | 408 | /api/vehicles/4c0d4aba-6aa1-4558-b6cc-8519dfc0c079/categories/a82c4df2-e5d4-48aa-8e4b-1c1ed25df739 | HTTP 408 Request Timeout |
| ZAR94000007364914 | Gasket, cylinder head | Engine > Gaskets > Gasket, cylinder head | 408 | /api/vehicles/4c0d4aba-6aa1-4558-b6cc-8519dfc0c079/categories/2cdef313-d84e-43c9-8432-4595fccd2b76 | HTTP 408 Request Timeout |
| ZAR94000007364914 | Starter | Electrics > Starter System > Starter | 408 | /api/vehicles/4c0d4aba-6aa1-4558-b6cc-8519dfc0c079/categories/4888e82c-0f24-4646-a759-a9ffcbe110d5 | HTTP 408 Request Timeout |
| VF7YDBMFC11969992 | Bumper/ Parts | Body > Vehicle Front > Bumper/ Parts | 408 | /api/vehicles/f01c906c-0182-4091-9842-3a29e9ab7c6b/categories/5686f8e9-bc23-47e3-a34c-028d0a0297f8 | HTTP 408 Request Timeout |
| VF7YDBMFC11969992 | Connecting Rod | Engine > Crankshaft Drive > Connecting Rod Assembly > Connecting Rod | 408 | /api/vehicles/f01c906c-0182-4091-9842-3a29e9ab7c6b/categories/f3d59375-771c-4c47-9d51-63bc297f3d52 | HTTP 408 Request Timeout |
| VF7YDBMFC11969992 | Electric Window Winder | Comfort Systems > Electric Window Winder | 408 | /api/vehicles/f01c906c-0182-4091-9842-3a29e9ab7c6b/categories/6234b276-0195-4912-9a3a-145fb404d1de | HTTP 408 Request Timeout |
| NM417800006360859 | Bumper/ Parts | Body > Vehicle Front > Bumper/ Parts | 408 | /api/vehicles/cc4b1a36-0b8a-40ec-8920-fa238a9ecbc0/categories/722b610b-4dc9-42a3-9eaa-f2d9ccf8eab3 | HTTP 408 Request Timeout |
| NM417800006360859 | Lambda Sensor | Exhaust System > Lambda Sensor | 408 | /api/vehicles/cc4b1a36-0b8a-40ec-8920-fa238a9ecbc0/categories/ef30bd62-b374-461d-954e-0a82821e1543 | HTTP 408 Request Timeout |
| NM417800006360859 | Repair Kit, clutch complete | Clutch/ Parts > Repair Kit, clutch complete | 408 | /api/vehicles/cc4b1a36-0b8a-40ec-8920-fa238a9ecbc0/categories/c281ed4d-067b-42cd-b90b-6d633969e882 | HTTP 408 Request Timeout |
| NM417800006360859 | Clutch Disc | Clutch/ Parts > Clutch Disc | 408 | /api/vehicles/cc4b1a36-0b8a-40ec-8920-fa238a9ecbc0/categories/5dc42c1b-84fb-463c-b70d-c35d6997b592 | HTTP 408 Request Timeout |
| JMZDKFWSA10182289 | Gasket Set, complete | Engine > Gaskets > Gasket Set, complete | 408 | /api/vehicles/b6e60852-2f66-4721-907d-236058c67fd2/categories/fbe00e20-6b21-4bee-bea2-59b19c6aed66 | HTTP 408 Request Timeout |
| WDB2100651A794807 | Battery | Electrics > Battery | 408 | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/ac6cdaa0-7e00-49c0-9047-16faf0122796 | HTTP 408 Request Timeout |
| WDB2100651A794807 | Starter Parts | Electrics > Starter System > Starter Parts | 408 | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/cdb9b836-dbf1-4e4a-a1b8-7545ea58de58 | HTTP 408 Request Timeout |
| WDB2100651A794807 | Solenoid Switch | Electrics > Starter System > Solenoid Switch | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/3998e479-2392-4959-bbd9-6847e9a2d723 | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/3998e479-2392-4959-bbd9-6847e9a2d723
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0
|
| WDB2100651A794807 | Ignition Coil | Spark/ Glow Ignition > Ignition Coil | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/1e45c601-5048-4ede-bf4d-ec6aa1dee92e | Request failed: apiRequestContext.get: socket hang up
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/1e45c601-5048-4ede-bf4d-ec6aa1dee92e
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Ignition Cable/ Connectors | Spark/ Glow Ignition > Ignition Cable/ Connectors | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/2a73be4b-28ae-4ae1-b1c1-18ae9af89601 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/2a73be4b-28ae-4ae1-b1c1-18ae9af89601
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Control Unit/ Relay | Spark/ Glow Ignition > Control Unit/ Relay | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/7b0f5538-5b14-46e3-add6-4bcdf2ab7e6a | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/7b0f5538-5b14-46e3-add6-4bcdf2ab7e6a
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Spark Plug | Spark/ Glow Ignition > Spark Plug | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/6134ffbd-d173-4bce-a2cc-4f0a5fb7ddc9 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/6134ffbd-d173-4bce-a2cc-4f0a5fb7ddc9
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Pulse Generator | Spark/ Glow Ignition > Pulse Generator | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/c747fe23-9d04-4e7f-b05d-a0d945b3c760 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/c747fe23-9d04-4e7f-b05d-a0d945b3c760
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Glow Plug | Spark/ Glow Ignition > Glow Plug | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/6a4e3de6-3cb0-47c9-93c7-7c0905c309cf | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/6a4e3de6-3cb0-47c9-93c7-7c0905c309cf
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4NjYzOTA5MiwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg2OTM5MDkyLCJzaWduYXR1cmUiOiJkcVUwbmpyN3BMM3pBZmdvWGFwNDllVXFHQlBLY3BQWWZOWHNxNE1rSDVzIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Heat Exchanger | Heater > Heat Exchanger | 408 | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/b686030d-896e-41fb-82cc-fdbfc71847c9 | HTTP 408 Request Timeout |
| WDB2100651A794807 | Blower/ Parts | Heater > Blower/ Parts | 408 | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/ea54fb9e-32a0-45a8-b39e-7c68c30b25b7 | HTTP 408 Request Timeout |
| WDB2100651A794807 | Additional Repairs | Maintenance Service Parts > Additional Repairs | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/da72efdb-c3cb-4176-9b27-ea8d471b121d | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/da72efdb-c3cb-4176-9b27-ea8d471b121d
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4Njk0Njk3NCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg3MjQ2OTc0LCJzaWduYXR1cmUiOiJSaUNDR0diU0tiajlGeUdnLURIWEI1a053ZlF3RUZTOTdqNGRFa2FoNE5vIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Service Intervals | Maintenance Service Parts > Service Intervals | - | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/ba1ecd10-8a36-4cc9-9bd8-58cc5075bb20 | Request failed: apiRequestContext.get: connect ECONNREFUSED ::1:3000
Call log:
 - → GET http://localhost:3000/api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/ba1ecd10-8a36-4cc9-9bd8-58cc5075bb20
 - user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: __Secure-better-auth.session_token=Lp79PTym4tSI71IyJ8hPVPZQXXXpAKDA.7ZQVsZ411XjifJSHAbmx0vFsHgAyAcNoG6cQIn%2FUli8%3D; __Secure-better-auth.session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNi0wMi0yM1QyMjowMTowMC4xNjNaIiwidG9rZW4iOiJMcDc5UFR5bTR0U0k3MUl5SjhoUFZQWlFYWFhwQUtEQSIsImNyZWF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsInVwZGF0ZWRBdCI6IjIwMjYtMDItMTZUMjI6MDE6MDAuMTYzWiIsImlwQWRkcmVzcyI6IjEyNy4wLjAuMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgSGVhZGxlc3NDaHJvbWUvMTQ1LjAuNzYzMi42IFNhZmFyaS81MzcuMzYiLCJ1c2VySWQiOiJlYjBhNTY3ZS0yM2EzLTQ5YjctOTk1MC1iMDRjZTU5ZjIzMTIiLCJpZCI6IjZlZjJjM2I0LTRlYzctNGE2NS1hNDRjLTA5N2M1Njk5ZjQ3YyJ9LCJ1c2VyIjp7Im5hbWUiOiJBZG1pbiIsImVtYWlsIjoiYWRtaW5Ac2FzZS50ciIsImVtYWlsVmVyaWZpZWQiOnRydWUsImltYWdlIjpudWxsLCJjcmVhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJ1cGRhdGVkQXQiOiIyMDI2LTAyLTEyVDAyOjE5OjAzLjkzM1oiLCJyb2xlIjoiYWRtaW4iLCJyZWZlcnJhbENvZGUiOiJBRE1JTjAwMSIsInJlZmVycmVkQnkiOm51bGwsImlkIjoiZWIwYTU2N2UtMjNhMy00OWI3LTk5NTAtYjA0Y2U1OWYyMzEyIn0sInVwZGF0ZWRBdCI6MTc3MTI4Njk0Njk3NCwidmVyc2lvbiI6IjEifSwiZXhwaXJlc0F0IjoxNzcxMjg3MjQ2OTc0LCJzaWduYXR1cmUiOiJSaUNDR0diU0tiajlGeUdnLURIWEI1a053ZlF3RUZTOTdqNGRFa2FoNE5vIn0; ph_phc_7rt3oQFMTNgTZeD3fbGz7eX9JXTbpStztZEFipeoozf_posthog=%7B%22%24device_id%22%3A%22019c68e9-dc92-7e01-94d8-89456be9f4f1%22%2C%22distinct_id%22%3A%22eb0a567e-23a3-49b7-9950-b04ce59f2312%22%2C%22%24epp%22%3Atrue%7D
|
| WDB2100651A794807 | Towbar | Towbar/ Parts > Towbar | 408 | /api/vehicles/67c4b46b-595d-48dd-8fd7-2625c6cab9f6/categories/3a48455b-7252-4268-90db-d311867cc8e0 | HTTP 408 Request Timeout |
| JHMED93700S302540 | Bumper/ Parts | Body > Vehicle Front > Bumper/ Parts | 408 | /api/vehicles/4cf4d930-bb70-4f13-82c0-f0ad4bd13524/categories/e852bf9b-74e3-4524-8b19-d2dd84d1844f | HTTP 408 Request Timeout |
| JHMED93700S302540 | Piston, complete | Engine > Crankshaft Drive > Piston Assembly > Piston, complete | 408 | /api/vehicles/4cf4d930-bb70-4f13-82c0-f0ad4bd13524/categories/1b117272-4d89-4a73-833d-f9d01c233998 | HTTP 408 Request Timeout |
| JHMED93700S302540 | Oil Filter | Engine > Lubrication > Oil Filter | 408 | /api/vehicles/4cf4d930-bb70-4f13-82c0-f0ad4bd13524/categories/0ec8676d-19a0-403c-9314-060a6dd6d238 | HTTP 408 Request Timeout |
| JHMED93700S302540 | Fuel Filter | Filters > Fuel Filter | 408 | /api/vehicles/4cf4d930-bb70-4f13-82c0-f0ad4bd13524/categories/961972fd-bae0-4ac9-958d-cd9480e7ec38 | HTTP 408 Request Timeout |
| JHMED93700S302540 | Silencer | Exhaust System > Silencer | 408 | /api/vehicles/4cf4d930-bb70-4f13-82c0-f0ad4bd13524/categories/8624b442-ead2-4576-90ef-f68c56bc88a2 | HTTP 408 Request Timeout |
| NM417800006215999 | Catalytic Converter | Exhaust System > Catalytic Converter | 408 | /api/vehicles/b2c37a93-6225-498b-b2d3-668f5add7eb3/categories/36f88c5d-8349-48d9-ae91-dffc81cd1376 | HTTP 408 Request Timeout |
| YV1AS985691096540 | Compressor / Parts | Air Conditioning > Compressor / Parts | 408 | /api/vehicles/11340b30-98eb-4959-94fc-3f90049098d1/categories/6c4c9fc2-6123-495e-a537-8fb4ea2dae94 | HTTP 408 Request Timeout |
| VF31AKFXLXM000535 | Bumper/ Parts | Body > Vehicle Front > Bumper/ Parts | 408 | /api/vehicles/395e4e03-a200-43e0-97a8-307453e3c014/categories/afeeddd0-b24f-441f-a4b0-ca0742103b01 | HTTP 408 Request Timeout |
| VF31AKFXLXM000535 | Drive Shaft | Wheel Drive > Drive Shaft | 408 | /api/vehicles/395e4e03-a200-43e0-97a8-307453e3c014/categories/5c3f6bca-9517-49ba-9daf-e101d1f01b2e | HTTP 408 Request Timeout |
| YV1AS84ABE1177595 | Park Assist Sensor / Reverse Alarm | Comfort Systems > Park Assist Sensor / Reverse Alarm | 408 | /api/vehicles/fd4eabfe-c7ab-471e-9b69-d33fb9cf7730/categories/a91a67a6-d813-41c0-9fc3-a71dd00e4865 | HTTP 408 Request Timeout |
| YV1AS84ABE1177595 | Remote Control, central locking | Locking System > Remote Control, central locking | 408 | /api/vehicles/fd4eabfe-c7ab-471e-9b69-d33fb9cf7730/categories/381a0233-4a31-46d5-a61f-9a0292839341 | HTTP 408 Request Timeout |
| TMAJ3812HGJ226161 | Timing Gears | Engine > Engine Timing Control > Timing Gears | 408 | /api/vehicles/cc4de96e-52e2-4f12-a437-d2d97d368ca1/categories/99314489-22d2-45d5-ba15-8338803c4574 | HTTP 408 Request Timeout |
| TMAJ3812HGJ226161 | Push Rod / Tube | Engine > Engine Timing Control > Push Rod / Tube | 408 | /api/vehicles/cc4de96e-52e2-4f12-a437-d2d97d368ca1/categories/1a0109d8-06ff-43de-93e2-241c1289de8d | HTTP 408 Request Timeout |
| TMAJ3812HGJ226161 | Radiator /Parts | Cooling System > Radiator/ Oil Cooler > Radiator /Parts | 408 | /api/vehicles/cc4de96e-52e2-4f12-a437-d2d97d368ca1/categories/b84dc43f-13e4-4741-8a2e-8e8dd0fc5558 | HTTP 408 Request Timeout |
| TMAJ3812HGJ226161 | Battery | Electrics > Battery | 408 | /api/vehicles/cc4de96e-52e2-4f12-a437-d2d97d368ca1/categories/e47caa4b-914e-4379-8f6f-c47a31986148 | HTTP 408 Request Timeout |
| NM414600008523582 | Repair Kit, clutch complete | Clutch/ Parts > Repair Kit, clutch complete | 408 | /api/vehicles/459a4d36-5753-4f19-90dc-25a954085882/categories/bad49e64-364f-422c-b39b-d84c5178c582 | HTTP 408 Request Timeout |
| NM414600008523582 | Starter | Electrics > Starter System > Starter | 408 | /api/vehicles/459a4d36-5753-4f19-90dc-25a954085882/categories/1389ab5c-f123-4083-b16b-d8cb891f25b7 | HTTP 408 Request Timeout |
| KNEFB227245296811 | Oil Pan | Engine > Lubrication > Oil Pan/ Parts > Oil Pan | 408 | /api/vehicles/388bb633-711d-462e-858a-985ee78ad28c/categories/7126e742-f98f-4536-88e4-418c41623122 | HTTP 408 Request Timeout |
| KNEFB227245296811 | Control Units | Electrics > Control Units | 408 | /api/vehicles/388bb633-711d-462e-858a-985ee78ad28c/categories/0b6ac7cc-bd1d-465d-9972-bf418cbc4f84 | HTTP 408 Request Timeout |

View File

@@ -0,0 +1,79 @@
# Ralph VIN Test Loop
## Gorev
Dashboard'daki VIN cozme ozelliginin tum VIN'ler uzerinde uctan uca test edilmesi.
## Calisma Dongusu
### 1. Test Calistir
```bash
cd /home/s/ss/ralph-vin-test && npx tsx run-all-vins.ts --resume
```
### 2. Sonucu Degerlendir
**Basarili cikarsa** (exit code 0):
- Tum VIN'ler test edilmis demektir
- `ralpRapor.md` dosyasini kontrol et
- Islem tamamlandi
**Hata ile cikarsa** (exit code 1):
- `ralph-vin-test/.ralph/progress.json` dosyasindaki `errorVin` ve `errorMessage` alanlarini oku
- `ralpRapor.md` dosyasindaki "Hata Detaylari" bolumunu incele
- Hata turunu belirle:
- **Network/API hatasi (4xx/5xx):** API kaynak kodunu incele
- **UI render hatasi:** Web kaynak kodunu incele
- **Timeout:** Performans sorunu veya eksik veri
### 3. Fix Yap
- Hatanin kaynak kodunu bul (`apps/api/src/` veya `apps/web/src/`)
- Fix uygula
- Rebuild yap:
```bash
# API fix ise:
cd /home/s/ss && pnpm --filter api build
# Web fix ise:
cd /home/s/ss && pnpm --filter web build
```
### 4. Fix'i Dogrula
- Ayni VIN'i tekrar test et:
```bash
cd /home/s/ss/ralph-vin-test && npx tsx run-all-vins.ts --single <HATA_VIN>
```
- Basarili olursa devam, hata devam ederse tekrar fix
### 5. Commit & Push
```bash
cd /home/s/ss
git add -A
git commit -m "fix: <kisa aciklama>"
git push
```
### 6. Devam Et
```bash
cd /home/s/ss/ralph-vin-test && npx tsx run-all-vins.ts --resume
```
## Onemli Dosyalar
| Dosya | Rol |
|-------|-----|
| `apps/api/src/vehicles/vehicles.service.ts` | VIN decode zinciri |
| `apps/api/src/categories/categories.service.ts` | Kategori tree + parts fetch |
| `apps/api/src/integrations/pl24/pl24.service.ts` | PL24 API entegrasyonu |
| `apps/api/src/integrations/emex/emex.service.ts` | EMEX scraper entegrasyonu |
| `apps/web/src/routes/dashboard/search.tsx` | VIN arama sayfasi |
| `apps/web/src/routes/dashboard/vehicles_/$id/index.tsx` | Arac detay + kategori listesi |
| `apps/web/src/routes/dashboard/vehicles_/$id/categories_/$categoryId.tsx` | Kategori parts sayfasi |
| `apps/web/src/components/categories/category-grid.tsx` | Kategori grid bileseni |
| `apps/web/src/hooks/use-parts.ts` | Parts query hook |
## Kurallar
- Decode basarisiz veya kategori yok olan VIN'leri SKIP et (bunlar expected)
- Kategori hatalari (4xx/5xx, error banner, timeout) mutlaka fix'lenmeli
- Her fix sonrasi rebuild + verify + commit + push
- `ralpRapor.md` her iterasyonda guncel olmali
- `progress.json` her VIN sonrasi kaydedilmeli (resume icin)

File diff suppressed because it is too large Load Diff

617
ralph-vin-test/package-lock.json generated Normal file
View File

@@ -0,0 +1,617 @@
{
"name": "ralph-vin-test",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ralph-vin-test",
"dependencies": {
"playwright": "^1.50.0"
},
"devDependencies": {
"tsx": "^4.19.0",
"typescript": "^5.7.0"
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz",
"integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz",
"integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz",
"integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz",
"integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz",
"integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz",
"integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz",
"integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz",
"integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz",
"integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz",
"integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz",
"integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz",
"integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz",
"integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==",
"cpu": [
"mips64el"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz",
"integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz",
"integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz",
"integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==",
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz",
"integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz",
"integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz",
"integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz",
"integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz",
"integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openharmony-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz",
"integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz",
"integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz",
"integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz",
"integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz",
"integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/esbuild": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz",
"integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"@esbuild/aix-ppc64": "0.27.3",
"@esbuild/android-arm": "0.27.3",
"@esbuild/android-arm64": "0.27.3",
"@esbuild/android-x64": "0.27.3",
"@esbuild/darwin-arm64": "0.27.3",
"@esbuild/darwin-x64": "0.27.3",
"@esbuild/freebsd-arm64": "0.27.3",
"@esbuild/freebsd-x64": "0.27.3",
"@esbuild/linux-arm": "0.27.3",
"@esbuild/linux-arm64": "0.27.3",
"@esbuild/linux-ia32": "0.27.3",
"@esbuild/linux-loong64": "0.27.3",
"@esbuild/linux-mips64el": "0.27.3",
"@esbuild/linux-ppc64": "0.27.3",
"@esbuild/linux-riscv64": "0.27.3",
"@esbuild/linux-s390x": "0.27.3",
"@esbuild/linux-x64": "0.27.3",
"@esbuild/netbsd-arm64": "0.27.3",
"@esbuild/netbsd-x64": "0.27.3",
"@esbuild/openbsd-arm64": "0.27.3",
"@esbuild/openbsd-x64": "0.27.3",
"@esbuild/openharmony-arm64": "0.27.3",
"@esbuild/sunos-x64": "0.27.3",
"@esbuild/win32-arm64": "0.27.3",
"@esbuild/win32-ia32": "0.27.3",
"@esbuild/win32-x64": "0.27.3"
}
},
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/get-tsconfig": {
"version": "4.13.6",
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz",
"integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==",
"dev": true,
"license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
},
"funding": {
"url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
},
"node_modules/playwright": {
"version": "1.58.2",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz",
"integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==",
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.58.2"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"fsevents": "2.3.2"
}
},
"node_modules/playwright-core": {
"version": "1.58.2",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz",
"integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==",
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/resolve-pkg-maps": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
},
"node_modules/tsx": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
"integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
"dev": true,
"license": "MIT",
"dependencies": {
"esbuild": "~0.27.0",
"get-tsconfig": "^4.7.5"
},
"bin": {
"tsx": "dist/cli.mjs"
},
"engines": {
"node": ">=18.0.0"
},
"optionalDependencies": {
"fsevents": "~2.3.3"
}
},
"node_modules/tsx/node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/typescript": {
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
}
}
}

View File

@@ -0,0 +1,16 @@
{
"name": "ralph-vin-test",
"private": true,
"type": "module",
"scripts": {
"test": "npx tsx test-vin.ts",
"test:all": "npx tsx run-all-vins.ts"
},
"dependencies": {
"playwright": "^1.50.0"
},
"devDependencies": {
"tsx": "^4.19.0",
"typescript": "^5.7.0"
}
}

View File

@@ -0,0 +1,350 @@
/**
* run-all-vins.ts — Orchestrator that runs test-vin for each VIN in the list.
*
* Reads VINs from scripts/vin-test-list.md, tests each one, writes results
* to ralpRapor.md, and maintains progress.json for resume support.
*
* Usage: npx tsx run-all-vins.ts [--resume] [--single VIN] [--start N]
*/
import * as fs from "node:fs";
import * as path from "node:path";
import { testVin, closeSession, type VinTestResult } from "./test-vin.js";
// ─── PATHS ──────────────────────────────────────────────────────────────────
const PROJECT_ROOT = path.resolve(import.meta.dirname, "..");
const VIN_LIST_PATH = path.join(PROJECT_ROOT, "scripts/vin-test-list.md");
const PROGRESS_PATH = path.join(import.meta.dirname, ".ralph/progress.json");
const REPORT_PATH = path.join(PROJECT_ROOT, "ralpRapor.md");
// ─── TYPES ──────────────────────────────────────────────────────────────────
interface Progress {
startedAt: string;
lastUpdated: string;
currentIndex: number;
totalVins: number;
results: Record<string, VinTestResult>;
status: "running" | "paused" | "completed" | "error";
errorVin?: string;
errorMessage?: string;
}
// ─── VIN LIST PARSER ────────────────────────────────────────────────────────
function parseVinList(): string[] {
const content = fs.readFileSync(VIN_LIST_PATH, "utf-8");
const lines = content.split("\n");
let inCodeBlock = false;
const vins: string[] = [];
for (const line of lines) {
const trimmed = line.trim();
if (trimmed === "```") {
inCodeBlock = !inCodeBlock;
continue;
}
if (inCodeBlock && /^[A-HJ-NPR-Z0-9]{17}$/i.test(trimmed)) {
vins.push(trimmed.toUpperCase());
}
}
// Also extract VINs from the table
for (const line of lines) {
const match = line.match(/\|\s*\w+\s*\|\s*([A-HJ-NPR-Z0-9]{17})\s*\|/i);
if (match) {
const vin = match[1].toUpperCase();
if (!vins.includes(vin)) vins.push(vin);
}
}
return [...new Set(vins)]; // Deduplicate
}
// ─── PROGRESS MANAGEMENT ────────────────────────────────────────────────────
function loadProgress(): Progress | null {
try {
const data = fs.readFileSync(PROGRESS_PATH, "utf-8");
return JSON.parse(data);
} catch {
return null;
}
}
function saveProgress(progress: Progress): void {
progress.lastUpdated = new Date().toISOString();
fs.writeFileSync(PROGRESS_PATH, JSON.stringify(progress, null, 2));
}
// ─── REPORT GENERATOR ───────────────────────────────────────────────────────
function generateReport(progress: Progress, vins: string[]): void {
const lines: string[] = [];
lines.push("# VIN Test Raporu (Ralph Loop)");
lines.push("");
lines.push(`**Baslangic:** ${progress.startedAt}`);
lines.push(`**Son Guncelleme:** ${progress.lastUpdated}`);
lines.push(`**Durum:** ${progress.status}`);
lines.push(`**Ilerleme:** ${Object.keys(progress.results).length} / ${vins.length}`);
lines.push("");
// Summary stats
const results = Object.values(progress.results);
const success = results.filter((r) => r.status === "success").length;
const partial = results.filter((r) => r.status === "partial").length;
const decodeFailed = results.filter((r) => r.status === "decode_failed").length;
const noCategories = results.filter((r) => r.status === "no_categories").length;
const errors = results.filter((r) => r.status === "error").length;
lines.push("## Ozet");
lines.push("");
lines.push(`| Metrik | Deger |`);
lines.push(`|--------|-------|`);
lines.push(`| Toplam Test | ${results.length} |`);
lines.push(`| Basarili | ${success} |`);
lines.push(`| Kismi Basarili | ${partial} |`);
lines.push(`| Decode Basarisiz | ${decodeFailed} |`);
lines.push(`| Kategori Yok | ${noCategories} |`);
lines.push(`| Hata | ${errors} |`);
lines.push("");
// Main results table
lines.push("## Detayli Sonuclar");
lines.push("");
lines.push("| # | VIN | Marka | Kategori Sayisi | Test Edilen | Basarili | Hatali | Durum | Sure |");
lines.push("|---|-----|-------|-----------------|-------------|----------|--------|-------|------|");
let idx = 1;
for (const vin of vins) {
const r = progress.results[vin];
if (!r) continue;
const statusEmoji =
r.status === "success" ? "OK" :
r.status === "partial" ? "KISMI" :
r.status === "decode_failed" ? "DECODE_FAIL" :
r.status === "no_categories" ? "KATEGORI_YOK" :
"HATA";
const duration = `${(r.duration / 1000).toFixed(1)}s`;
lines.push(
`| ${idx} | ${r.vin} | ${r.brandName || "-"} | ${r.totalCategories} | ${r.testedCategories} | ${r.successCategories} | ${r.errorCategories} | ${statusEmoji} | ${duration} |`,
);
idx++;
}
// Error details section
const allErrors = results.flatMap((r) =>
r.errors.map((e) => ({ vin: r.vin, ...e })),
);
if (allErrors.length > 0) {
lines.push("");
lines.push("## Hata Detaylari");
lines.push("");
lines.push("| VIN | Kategori | Yol | HTTP Kodu | Endpoint | Hata Detayi |");
lines.push("|-----|----------|-----|-----------|----------|-------------|");
for (const err of allErrors) {
lines.push(
`| ${err.vin} | ${err.categoryName} | ${err.path.join(" > ")} | ${err.httpCode || "-"} | ${err.endpoint || "-"} | ${err.errorDetail || "-"} |`,
);
}
}
// Stopped at error
if (progress.status === "error" && progress.errorVin) {
lines.push("");
lines.push("## Durdurulan Hata");
lines.push("");
lines.push(`**VIN:** ${progress.errorVin}`);
lines.push(`**Mesaj:** ${progress.errorMessage || "Unknown"}`);
lines.push("");
lines.push("Bu VIN icin fix yapilmasi gerekiyor. Fix yapildiktan sonra `--resume` ile devam edilebilir.");
}
lines.push("");
fs.writeFileSync(REPORT_PATH, lines.join("\n"));
}
// ─── MAIN ───────────────────────────────────────────────────────────────────
async function main(): Promise<void> {
const args = process.argv.slice(2);
const resumeMode = args.includes("--resume");
const singleVinIdx = args.indexOf("--single");
const singleVin = singleVinIdx !== -1 ? args[singleVinIdx + 1] : null;
const startIdx = args.indexOf("--start");
const startFrom = startIdx !== -1 ? parseInt(args[startIdx + 1], 10) : 0;
// Parse VIN list
const allVins = parseVinList();
console.log(`Parsed ${allVins.length} VINs from test list`);
if (singleVin) {
console.log(`\nTesting single VIN: ${singleVin}`);
const result = await testVin(singleVin);
console.log(JSON.stringify(result, null, 2));
await closeSession();
return;
}
// Load or create progress
let progress: Progress;
if (resumeMode) {
const existing = loadProgress();
if (existing) {
progress = existing;
progress.status = "running";
console.log(`Resuming from VIN index ${progress.currentIndex}`);
} else {
console.log("No existing progress found, starting fresh");
progress = {
startedAt: new Date().toISOString(),
lastUpdated: new Date().toISOString(),
currentIndex: startFrom,
totalVins: allVins.length,
results: {},
status: "running",
};
}
} else {
progress = {
startedAt: new Date().toISOString(),
lastUpdated: new Date().toISOString(),
currentIndex: startFrom,
totalVins: allVins.length,
results: {},
status: "running",
};
}
// Run tests
for (let i = progress.currentIndex; i < allVins.length; i++) {
const vin = allVins[i];
progress.currentIndex = i;
// Skip already tested
if (progress.results[vin]) {
console.log(`[${i + 1}/${allVins.length}] Skipping ${vin} (already tested)`);
continue;
}
console.log(`\n${"=".repeat(70)}`);
console.log(`[${i + 1}/${allVins.length}] Testing VIN: ${vin}`);
console.log(`${"=".repeat(70)}`);
const result = await testVin(vin);
progress.results[vin] = result;
// Log result summary
const statusIcon =
result.status === "success" ? "[OK]" :
result.status === "partial" ? "[PARTIAL]" :
result.status === "decode_failed" ? "[DECODE_FAIL]" :
result.status === "no_categories" ? "[NO_CAT]" :
"[ERROR]";
console.log(
`${statusIcon} ${vin} | Categories: ${result.testedCategories}/${result.totalCategories} | Errors: ${result.errorCategories} | ${(result.duration / 1000).toFixed(1)}s`,
);
if (result.message) {
console.log(` Message: ${result.message}`);
}
if (result.errors.length > 0) {
for (const err of result.errors) {
console.log(` ERROR: ${err.path.join(" > ")} | ${err.errorDetail}`);
}
}
// Save progress after each VIN
saveProgress(progress);
generateReport(progress, allVins);
// Stop on critical errors (not decode_failed or no_categories, which are expected)
if (result.status === "error") {
const msg = (result.message || "").toLowerCase();
const isTransient = msg.includes("econnrefused") ||
msg.includes("context was destroyed") ||
msg.includes("browser has been closed") ||
msg.includes("target page") ||
msg.includes("execution context") ||
msg.includes("socket hang up") ||
msg.includes("navigation");
if (isTransient) {
console.log(`\n [TRANSIENT] ${result.message} — closing session, will retry next VIN`);
// Remove from results so it gets retested on resume
delete progress.results[vin];
saveProgress(progress);
await closeSession();
// Wait 10s for server to recover
await new Promise((r) => setTimeout(r, 10_000));
continue;
}
console.log(`\n*** CRITICAL ERROR on VIN ${vin} ***`);
console.log(`Message: ${result.message}`);
progress.status = "error";
progress.errorVin = vin;
progress.errorMessage = result.message || "Unknown error";
saveProgress(progress);
generateReport(progress, allVins);
console.log("\nStopping. Fix the issue and run with --resume to continue.");
await closeSession();
process.exit(1);
}
// Stop on partial only if there are real API errors (4xx/5xx), not timeouts or connectivity
if (result.status === "partial" && result.errorCategories > 0) {
// Filter out transient errors: 408 (PL24 timeout), 429 (rate limit), and connectivity errors (no httpCode)
const httpErrors = result.errors.filter((e) => {
if (!e.httpCode) return false; // no httpCode = connectivity issue (ECONNREFUSED, etc.)
if (e.httpCode === 408 || e.httpCode === 429) return false; // transient
return e.httpCode >= 400;
});
if (httpErrors.length > 0) {
console.log(`\n*** CATEGORY ERRORS found on VIN ${vin} ***`);
console.log(`${httpErrors.length} categories had HTTP errors.`);
progress.status = "error";
progress.errorVin = vin;
progress.errorMessage = `${httpErrors.length} HTTP errors: ${httpErrors.map((e) => e.errorDetail).join("; ")}`;
saveProgress(progress);
generateReport(progress, allVins);
console.log("\nStopping. Fix the issue and run with --resume to continue.");
await closeSession();
process.exit(1);
}
// Non-HTTP errors (timeouts, connectivity, etc.) — log but continue
console.log(` (${result.errorCategories} non-critical errors, continuing)`);
}
}
// All done
progress.status = "completed";
progress.currentIndex = allVins.length;
saveProgress(progress);
generateReport(progress, allVins);
console.log(`\n${"=".repeat(70)}`);
console.log("ALL VINs TESTED SUCCESSFULLY");
console.log(`${"=".repeat(70)}`);
console.log(`Report saved to: ${REPORT_PATH}`);
await closeSession();
}
main().catch((err) => {
console.error("Fatal error:", err);
process.exit(1);
});

549
ralph-vin-test/test-vin.ts Normal file
View File

@@ -0,0 +1,549 @@
/**
* test-vin.ts — Playwright VIN tester using grid UI navigation.
*
* Strategy:
* 1. Login → decode VIN → vehicle page
* 2. Grid modunda kategorileri göster
* 3. Her kart:
* - Branch (button) → tıkla, drill-down, recursive test, breadcrumb back
* - Leaf (a link) → API ile parts endpoint'ini test et
* 4. Index-based kart seçimi (multiline isim sorunu yok)
*
* Rate limiting: sase.tr 100 req/60s. Grid UI kendi fetch'lerini yapar,
* biz sadece leaf test API call'ları yapıyoruz → çok daha az istek.
*
* Usage: npx tsx test-vin.ts <VIN>
*/
import { chromium, type Browser, type BrowserContext, type Page } from "playwright";
// ─── TYPES ──────────────────────────────────────────────────────────────────
export interface CategoryTestResult {
categoryId: string;
categoryName: string;
path: string[];
status: "ok" | "error" | "empty";
errorDetail?: string;
httpCode?: number;
endpoint?: string;
}
export interface VinTestResult {
vin: string;
status: "success" | "decode_failed" | "no_categories" | "error" | "partial";
vehicleId?: string;
brandName?: string;
totalCategories: number;
testedCategories: number;
successCategories: number;
errorCategories: number;
errors: CategoryTestResult[];
duration: number;
message?: string;
}
// ─── CONFIG ─────────────────────────────────────────────────────────────────
const BASE_URL = "http://localhost:3000";
const LOGIN_EMAIL = "admin@sase.tr";
const LOGIN_PASSWORD = "Sase2026";
const VIN_DECODE_TIMEOUT = 120_000;
const PAGE_LOAD_TIMEOUT = 30_000;
// ─── RATE LIMITER ───────────────────────────────────────────────────────────
const RATE_WINDOW = 60_000;
const RATE_MAX = 85;
const timestamps: number[] = [];
async function rateWait(): Promise<void> {
const now = Date.now();
while (timestamps.length > 0 && timestamps[0] < now - RATE_WINDOW) timestamps.shift();
if (timestamps.length >= RATE_MAX) {
const wait = timestamps[0] + RATE_WINDOW - Date.now() + 200;
if (wait > 0) await sleep(wait);
while (timestamps.length > 0 && timestamps[0] < Date.now() - RATE_WINDOW) timestamps.shift();
}
timestamps.push(Date.now());
}
// ─── SESSION ────────────────────────────────────────────────────────────────
let sharedCtx: BrowserContext | null = null;
let sharedBrowser: Browser | null = null;
export async function getOrCreateSession(): Promise<{ browser: Browser; context: BrowserContext }> {
if (sharedBrowser && sharedCtx) {
try {
const p = await sharedCtx.newPage();
await p.goto(`${BASE_URL}/dashboard/search`, { waitUntil: "domcontentloaded", timeout: 10_000 });
await p.waitForTimeout(2000);
const ok = p.url().includes("/dashboard/search");
await p.close();
if (ok) return { browser: sharedBrowser, context: sharedCtx };
} catch {}
}
if (sharedBrowser) try { await sharedBrowser.close(); } catch {}
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({ baseURL: BASE_URL, viewport: { width: 1280, height: 900 } });
const page = await context.newPage();
await loginViaUI(page);
await page.close();
sharedBrowser = browser;
sharedCtx = context;
return { browser, context };
}
async function loginViaUI(page: Page): Promise<void> {
await page.goto(`${BASE_URL}/login`, { waitUntil: "domcontentloaded", timeout: 15_000 });
await page.waitForTimeout(1000);
await page.fill('#email', LOGIN_EMAIL);
await page.fill('#password', LOGIN_PASSWORD);
await page.click('button[type="submit"]');
await page.waitForURL("**/dashboard/**", { timeout: 15_000 });
console.log(" Login OK");
}
export async function closeSession(): Promise<void> {
if (sharedBrowser) try { await sharedBrowser.close(); } catch {}
sharedBrowser = null;
sharedCtx = null;
}
function sleep(ms: number): Promise<void> { return new Promise((r) => setTimeout(r, ms)); }
// ─── GRID HELPERS ───────────────────────────────────────────────────────────
/** Wait for grid to be loaded (no spinner, cards visible) */
async function waitForGrid(page: Page, timeout = PAGE_LOAD_TIMEOUT): Promise<void> {
try {
await page.waitForFunction(
() => !document.querySelector('.animate-spin'),
{ timeout },
);
} catch {}
await page.waitForTimeout(600);
}
/** Wait for drill-down: the grid content should change after clicking a branch */
async function waitForDrillDown(page: Page, prevCardNames: string[], timeout = 15_000): Promise<boolean> {
try {
await page.waitForFunction(
(prevNames) => {
const noSpinner = !document.querySelector('.animate-spin');
if (!noSpinner) return false;
// Check if breadcrumb appeared (means we drilled down)
const breadcrumb = document.querySelector('.flex.items-center.gap-1\\.5.text-sm');
if (breadcrumb) {
// Grid cards changed or breadcrumb appeared
const grid = document.querySelector('.grid.gap-3.lg\\:grid-cols-3');
if (!grid) return false;
const names = Array.from(grid.children).map(el => {
const n = el.querySelector('.font-semibold, .font-medium');
return n?.textContent?.trim() || '';
});
// Cards should be different from previous level
return JSON.stringify(names) !== JSON.stringify(prevNames);
}
return false;
},
prevCardNames,
{ timeout },
);
await page.waitForTimeout(300);
return true;
} catch {
return false;
}
}
/** Check if breadcrumb is visible (we're in a drilled-down state) */
async function hasBreadcrumb(page: Page): Promise<boolean> {
return page.locator('.flex.items-center.gap-1\\.5.text-sm').isVisible({ timeout: 500 }).catch(() => false);
}
interface CardInfo {
index: number;
name: string;
isLeaf: boolean; // <a> = leaf, <button> = branch
categoryId: string; // extracted from href for leaves
}
/** Get all category cards currently visible in the grid */
async function getGridCards(page: Page): Promise<CardInfo[]> {
return page.evaluate(() => {
const grid = document.querySelector('.grid.gap-3.lg\\:grid-cols-3');
if (!grid) return [];
const items = Array.from(grid.children) as HTMLElement[];
return items.map((el, i) => {
const isLeaf = el.tagName.toLowerCase() === 'a';
const nameEl = el.querySelector('.font-semibold, .font-medium');
const name = nameEl?.textContent?.trim() || `Card ${i}`;
let categoryId = '';
if (isLeaf) {
const href = el.getAttribute('href') || '';
const match = href.match(/categories\/([^/]+)/);
if (match) categoryId = match[1];
}
return { index: i, name, isLeaf, categoryId };
});
});
}
/** Click a card by index in the grid */
async function clickCard(page: Page, index: number): Promise<boolean> {
const card = page.locator('.grid.gap-3.lg\\:grid-cols-3 > *').nth(index);
try {
await card.click({ timeout: 5000 });
return true;
} catch {
return false;
}
}
/** Go back one level via the breadcrumb back arrow */
async function gridGoBack(page: Page): Promise<void> {
// ArrowLeft button in breadcrumb area: first button inside .flex.items-center.gap-1\.5
const backBtn = page.locator('.flex.items-center.gap-1\\.5.text-sm button').first();
if (await backBtn.isVisible({ timeout: 3000 }).catch(() => false)) {
await backBtn.click();
await page.waitForTimeout(400);
return;
}
// Fallback: "Kategoriler" text button (goes to root)
const rootBtn = page.locator('button:has-text("Kategoriler")');
if (await rootBtn.isVisible({ timeout: 1000 }).catch(() => false)) {
await rootBtn.click();
await page.waitForTimeout(400);
}
}
// ─── RECURSIVE GRID TESTER ─────────────────────────────────────────────────
let leafCounter = 0;
async function testGridLevel(
page: Page,
vehicleId: string,
pathSoFar: string[],
results: CategoryTestResult[],
depth: number = 0,
): Promise<void> {
if (depth > 10) return;
await waitForGrid(page);
const initialCards = await getGridCards(page);
if (initialCards.length === 0) return;
// Track processed cards by name to survive grid re-reads
const processed = new Set<string>();
// First pass: test all leaves (no navigation needed, just API calls)
for (const card of initialCards) {
if (card.isLeaf) {
processed.add(card.name);
leafCounter++;
const currentPath = [...pathSoFar, card.name];
const result = await testLeafApi(page, vehicleId, card.categoryId, card.name, currentPath);
if (result.httpCode === 429) {
console.log(` [${leafCounter}] Rate limited, waiting 60s...`);
await sleep(60_000);
const retry = await testLeafApi(page, vehicleId, card.categoryId, card.name, currentPath);
results.push(retry);
if (retry.status === "error") console.log(` [${leafCounter}] ERROR: ${card.name} | ${retry.errorDetail}`);
} else {
results.push(result);
if (result.status === "error") {
console.log(` [${leafCounter}] ERROR: ${card.name} | ${result.errorDetail}`);
} else if (leafCounter % 50 === 0) {
console.log(` [${leafCounter}] OK...`);
}
}
}
}
// Second pass: drill into each branch
// Re-read cards fresh before each branch click (grid state may have changed)
const branchNames = initialCards.filter(c => !c.isLeaf).map(c => c.name);
for (const branchName of branchNames) {
if (processed.has(branchName)) continue;
processed.add(branchName);
// Re-read grid to find the branch by name (index may have shifted)
const freshCards = await getGridCards(page);
const branchIdx = freshCards.findIndex(c => c.name === branchName && !c.isLeaf);
if (branchIdx === -1) {
console.log(` ${" ".repeat(depth)}> ${branchName} (not found in grid, skipping)`);
continue;
}
const currentPath = [...pathSoFar, branchName];
const prevNames = freshCards.map(c => c.name);
console.log(` ${" ".repeat(depth)}> ${branchName}`);
const clicked = await clickCard(page, branchIdx);
if (!clicked) {
// Retry: wait a bit and try again
await page.waitForTimeout(1000);
const retryCards = await getGridCards(page);
const retryIdx = retryCards.findIndex(c => c.name === branchName && !c.isLeaf);
if (retryIdx === -1 || !(await clickCard(page, retryIdx))) {
console.log(` ${" ".repeat(depth)} (click failed, skipping)`);
continue;
}
}
// Wait for drill-down
const drilled = await waitForDrillDown(page, prevNames);
if (!drilled) {
await waitForGrid(page);
const afterCards = await getGridCards(page);
const afterNames = afterCards.map(c => c.name);
if (JSON.stringify(afterNames) === JSON.stringify(prevNames)) {
console.log(` ${" ".repeat(depth)} (drill-down failed, skipping)`);
continue;
}
}
await waitForGrid(page);
const subCards = await getGridCards(page);
console.log(` ${" ".repeat(depth)} -> ${subCards.length} children`);
if (subCards.length > 0) {
await testGridLevel(page, vehicleId, currentPath, results, depth + 1);
}
// Go back to current level
const restored = await navigateBackToLevel(page, prevNames, depth);
if (!restored) {
console.log(` ${" ".repeat(depth)} (nav lost, resetting...)`);
// Hard reset: reload page and re-navigate to current path
await resetToRoot(page, vehicleId);
if (pathSoFar.length > 0) {
const renavOk = await navigateToPath(page, pathSoFar);
if (!renavOk) {
console.log(` ${" ".repeat(depth)} (re-nav failed, stopping this branch)`);
return;
}
}
// Now we should be at the correct level, continue to next branch
}
}
}
/** Navigate back and verify we're at the correct level */
async function navigateBackToLevel(page: Page, expectedNames: string[], depth: number): Promise<boolean> {
await gridGoBack(page);
await page.waitForTimeout(400);
await waitForGrid(page);
let currentCards = await getGridCards(page);
if (currentCards.map(c => c.name).join('|') === expectedNames.join('|')) return true;
// Try a few more back clicks
for (let i = 0; i < 3; i++) {
const hasBc = await page.locator('.flex.items-center.gap-1\\.5.text-sm').isVisible({ timeout: 500 }).catch(() => false);
if (!hasBc && depth === 0) {
// At root, check if cards match
currentCards = await getGridCards(page);
if (currentCards.map(c => c.name).join('|') === expectedNames.join('|')) return true;
break;
}
await gridGoBack(page);
await page.waitForTimeout(400);
await waitForGrid(page);
currentCards = await getGridCards(page);
if (currentCards.map(c => c.name).join('|') === expectedNames.join('|')) return true;
}
return false;
}
/** Reset grid to root level — hard reload as fallback */
async function resetToRoot(page: Page, vehicleId?: string): Promise<void> {
// Try breadcrumb "Kategoriler" button first
const rootBtn = page.locator('button:has-text("Kategoriler")');
if (await rootBtn.isVisible({ timeout: 1000 }).catch(() => false)) {
await rootBtn.click();
await page.waitForTimeout(500);
await waitForGrid(page);
// Verify we're at root (no breadcrumb visible)
const hasBc = await page.locator('.flex.items-center.gap-1\\.5.text-sm').isVisible({ timeout: 500 }).catch(() => false);
if (!hasBc) return;
}
// Hard fallback: reload the vehicle page
if (vehicleId) {
await page.goto(`${BASE_URL}/dashboard/vehicles/${vehicleId}`, { waitUntil: "domcontentloaded", timeout: PAGE_LOAD_TIMEOUT });
await page.waitForSelector('.grid.gap-3.lg\\:grid-cols-3', { timeout: PAGE_LOAD_TIMEOUT }).catch(() => {});
await waitForGrid(page);
}
}
/** Navigate from root to a specific path by clicking branches one by one */
async function navigateToPath(page: Page, pathSoFar: string[]): Promise<boolean> {
for (const name of pathSoFar) {
await waitForGrid(page);
const cards = await getGridCards(page);
const idx = cards.findIndex(c => c.name === name && !c.isLeaf);
if (idx === -1) return false;
const prevNames = cards.map(c => c.name);
const clicked = await clickCard(page, idx);
if (!clicked) return false;
const drilled = await waitForDrillDown(page, prevNames);
if (!drilled) {
// Check if cards actually changed
const afterCards = await getGridCards(page);
if (JSON.stringify(afterCards.map(c => c.name)) === JSON.stringify(prevNames)) return false;
}
}
return true;
}
/** Test a leaf category's parts endpoint via API */
async function testLeafApi(
page: Page,
vehicleId: string,
categoryId: string,
name: string,
path: string[],
): Promise<CategoryTestResult> {
const endpoint = `/api/vehicles/${vehicleId}/categories/${categoryId}`;
try {
await rateWait();
const resp = await page.request.get(`${BASE_URL}${endpoint}`, { timeout: 120_000 });
const status = resp.status();
if (status >= 400) {
return { categoryId, categoryName: name, path, status: "error", errorDetail: `HTTP ${status} ${resp.statusText()}`, httpCode: status, endpoint };
}
let data: any;
try {
data = await resp.json();
if (data.data) data = data.data;
} catch {
return { categoryId, categoryName: name, path, status: "error", errorDetail: "JSON parse failed", httpCode: status, endpoint };
}
return { categoryId, categoryName: name, path, status: "ok" };
} catch (err: any) {
return { categoryId, categoryName: name, path, status: "error", errorDetail: `Request failed: ${err.message}`, endpoint };
}
}
// ─── MAIN ───────────────────────────────────────────────────────────────────
export async function testVin(vin: string): Promise<VinTestResult> {
const startTime = Date.now();
const results: CategoryTestResult[] = [];
leafCounter = 0;
let page: Page | null = null;
try {
const { context } = await getOrCreateSession();
page = await context.newPage();
// ── Step 1: Search page ─────────────────────────────────────────────
await page.goto(`${BASE_URL}/dashboard/search`, { waitUntil: "domcontentloaded", timeout: PAGE_LOAD_TIMEOUT });
if (!page.url().includes("/dashboard/search")) {
await loginViaUI(page);
await page.goto(`${BASE_URL}/dashboard/search`, { waitUntil: "domcontentloaded", timeout: PAGE_LOAD_TIMEOUT });
}
// ── Step 2: Enter VIN ───────────────────────────────────────────────
const vinInput = page.locator('input[placeholder*="17 karakter"]');
await vinInput.waitFor({ state: "visible", timeout: 10_000 });
await vinInput.fill(vin);
await page.waitForTimeout(500);
await page.locator('button[type="submit"]:has-text("Çöz")').click();
// ── Step 3: Wait for vehicle page ───────────────────────────────────
try {
await page.waitForURL("**/dashboard/vehicles/**", { timeout: VIN_DECODE_TIMEOUT });
} catch {
const errEl = page.locator(".text-destructive");
if (await errEl.isVisible({ timeout: 2000 }).catch(() => false)) {
const msg = await errEl.first().textContent().catch(() => "Unknown");
return mkResult(vin, "decode_failed", startTime, { message: `Decode failed: ${msg}` });
}
return mkResult(vin, "decode_failed", startTime, { message: "Decode timeout" });
}
const vehicleId = page.url().match(/\/vehicles\/([^/]+)/)?.[1] || "";
const brandName = (await page.locator("h2").first().textContent().catch(() => ""))?.split(" ")[0] || "";
// ── Step 4: Wait for categories grid ────────────────────────────────
// Wait for skeleton to disappear and grid to appear
try {
await page.waitForSelector('.grid.gap-3.lg\\:grid-cols-3', { timeout: PAGE_LOAD_TIMEOUT });
} catch {
// Check "Kategori bulunamadi"
const nocat = page.locator('text="Kategori bulunamadi."');
if (await nocat.isVisible({ timeout: 2000 }).catch(() => false)) {
return mkResult(vin, "no_categories", startTime, { vehicleId, brandName, message: "Kategori bulunamadi" });
}
return mkResult(vin, "no_categories", startTime, { vehicleId, brandName, message: "Grid did not load" });
}
await waitForGrid(page);
const rootCards = await getGridCards(page);
console.log(` Vehicle: ${brandName} | ${rootCards.length} root categories`);
if (rootCards.length === 0) {
return mkResult(vin, "no_categories", startTime, { vehicleId, brandName, message: "No root categories" });
}
// ── Step 5: Recursively test all categories via grid ────────────────
await testGridLevel(page, vehicleId, [], results, 0);
console.log(` Done: ${leafCounter} leaves tested`);
const errs = results.filter((r) => r.status === "error");
return {
vin,
status: errs.length > 0 ? "partial" : "success",
vehicleId,
brandName,
totalCategories: leafCounter,
testedCategories: results.length,
successCategories: results.filter((r) => r.status === "ok").length,
errorCategories: errs.length,
errors: errs,
duration: Date.now() - startTime,
};
} catch (err: any) {
return {
vin,
status: "error",
totalCategories: 0,
testedCategories: results.length,
successCategories: results.filter((r) => r.status === "ok").length,
errorCategories: results.filter((r) => r.status === "error").length,
errors: results.filter((r) => r.status === "error"),
duration: Date.now() - startTime,
message: `Unexpected: ${err.message}`,
};
} finally {
if (page) try { await page.close(); } catch {}
}
}
function mkResult(vin: string, status: VinTestResult["status"], start: number, o: Partial<VinTestResult> = {}): VinTestResult {
return { vin, status, totalCategories: 0, testedCategories: 0, successCategories: 0, errorCategories: 0, errors: [], duration: Date.now() - start, ...o };
}
// ─── CLI ─────────────────────────────────────────────────────────────────────
if (process.argv[1]?.endsWith("test-vin.ts")) {
const vin = process.argv[2];
if (!vin) { console.error("Usage: npx tsx test-vin.ts <VIN>"); process.exit(1); }
console.log(`Testing VIN: ${vin}`);
testVin(vin)
.then((r) => { console.log(JSON.stringify(r, null, 2)); return closeSession(); })
.then(() => process.exit(0))
.catch((e) => { console.error("Fatal:", e); process.exit(1); });
}

View File

@@ -0,0 +1,12 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"outDir": "dist"
},
"include": ["*.ts"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 KiB

After

Width:  |  Height:  |  Size: 332 KiB